0
私は現在、PORTD入力をリッスンし、その値に基づいて出力を変更するPCINT2外部割り込みを持つATMega48エミュレータ用の簡単なプログラムを作成しようとしています。ここでATMega48 - 外部PCINT2割り込みを登録するには?
はインタラプタのコードです:
unsigned int d; // a variable that has to change based on the input
ISR(PCINT2_vect) {
if (PORTD % 2 == 0) {
if (d <= 8000) {
d += 500;
}
} else {
if (d >= 1000) {
d -= 500;
}
}
}
main()関数:
int main(void)
{
DDRD = 0x00; // set PORTC for input
DDRB = 0xFF; // set PORTB for output
PORTB = 0x00; // Initial value is 0
PCMSK0 = 0b00000100;
d = 4000;
sei();
while (1) {
// Enable\Disable the LED with an initial delay
if (PIND == 0b00000000) {
PORTB = 0b00100000;
} else {
PORTB = 0b00000000;
}
// Delay for N seconds (determined by interrupt)
delay_stuff(d);
}
return 1;
}
現在、それは関係なく、任意のポートに何が起こるかインタラプタを呼び出していないいない、私の仮定は、Iであります割り込みの呼び出しに魔法のATMegaリスナを登録していません。 割り込みを登録するにはどうすればよいですか?