我/正在尝试为我的 arduino uno 设置一个 ISR,我正在尝试使用较低级别的方法来启用我的中断,以便我确定到底发生了什么。但是我的方法遇到了问题
这是我的代码:
#include <stdint.h>
#include <avr/interrupt.h>
#define RASPI_PORT 4
#define SERVO_PORT 8
void ISR_config(void);
/* ------------------------ Interrupt Functions -------------------*/
ISR (PCINT0_vect);
/* ------------------------ General Functions ---------------------*/
void toggle_spray();
void setup() {
Serial.begin(9600);
// Clear interrupts
cli();
// enable interrupts
ISR_config();
// Enable interrupts
sei();
}
void loop() {
// Dummy code
}
void ISR_config(void){
// Set pin 4 as an input pin
DDRD &= ~(1 << DDD4);
PORTD |= (1 << PORTD4);
// Enable port[7:0] for interrupts
PCICR |= 0x1; //(1 << PCIE0);
// Enable only pin 4 for interrupts
PCMSK0 |= 0x10; //(1 << PCINT4);
}
// Interrupt Handller Function
ISR (PCINT0_vect){
// Call the toggle function
Serial.println("IN ISR");
toggle_spray();
}
引脚从外部源切换,但不会触发中断。
任何帮助将不胜感激!