Hi, ich arbeite mich gerade durch das GCC Tutorial und habe nun beim
Thema Interrupts folgendes Problem, wenn ich das Programm mit AVR Studio
simuliere:
ich habe in der Simulation den Controller ATMega 48 eingestellt und
wollte den Pin Change Interrupt testen. Wenn ich nun den Pin B 0 Setze,
dann springt er immer sofort wieder in die Zeile int main (void) anstatt
die Interrupt Routine an.
Was mache ich falsch?
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 |
|
5 |
|
6 | ISR (_VECTOR(1)) {
|
7 | PORTB = 0b00000010;
|
8 | }
|
9 |
|
10 | int main (void) {
|
11 | DDRB = 0b00000010;
|
12 | PCICR = 0b00000001; //Im Pin Change Interrupt Controll Register wird Pinchange Interrupt 0 aktiviert
|
13 | PCMSK0 = 0b00000001; //für den Pinchange Interrupt 0 wird im Pin Change Mask 0 Register der Pin PCInt 0 (PB0) ausgewählt
|
14 | sei(); //Aktiviert Interrupts
|
15 | while(1) {
|
16 | };
|
17 | return 0;
|
18 | }
|
PS: habe auch die Sufu benutzt und mir andere Codes angesehen, hab den
Fehler allerdings nicht gefunden :-(
MfG
Miche