#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Hello, world!");
DDRD = 0b00000000;
PORTD = 0b11111111;
// attachInterrupt(digitalPinToInterrupt(2), interrupted, RISING);
cli(); //disable interrupt--> for precise timing
Serial.begin(9600); // initialize Serial Monitor-->才能順利jump到interrupted()
bitSet(EIMSK, INT0);
EICRA = bit(ISC00) |bit(ISC01);
sei(); //re-enable interrupt
}
byte value=10;
void loop() {
byte newValue = PIND;
if(newValue != value)
{
lcd.clear();
lcd.print(newValue, BIN);
value = newValue;
}
}
ISR(INT0_vect){
// Serial.println("I was interrupted");
Serial.println("I was interrupted with registers");
}