如何把430io口写成像arduino pinmode()这种函数?

把430的io口封装成像arduino pinmode() 这种传参的形式的函数?
2025-04-30 08:28:08
推荐回答(1个)
回答1:

D:\Program Files\Arduino\hardware\arduino\cores\arduino的wiring_digital.c文件
或D:\Program Files\Arduino\hardware\arduino\cores\robot的wiring_digital.c文件

#define ARDUINO_MAIN#include "wiring_private.h"#include "pins_arduino.h" void pinMode(uint8_t pin, uint8_t mode){ uint8_tbit = digitalPinToBitMask(pin); uint8_tport = digitalPinToPort(pin); volatileuint8_t *reg, *out; if(port == NOT_A_PIN) return; //JWS: can I let the optimizer do this? reg= portModeRegister(port); out= portOutputRegister(port); if(mode == INPUT) { uint8_toldSREG = SREG; cli(); *reg&= ~bit; *out&= ~bit; SREG= oldSREG; 肠禒斑溉职防办狮暴饯 }else if (mode == INPUT_PULLUP) { uint8_toldSREG = SREG; cli(); *reg&= ~bit; *out|= bit; SREG= oldSREG; }else { uint8_toldSREG = SREG; cli(); *reg|= bit; SREG= oldSREG; }}