Hi, ich will ein Signal auswerten. Dazu arbeite ich mit dem Externen Interupt. Konfiguation: GIMSK = (1<<INT1); MCUCR = (1<<ISC11); Das funktioniert auch alles nur wenn ich jetzt nach x ms messen, messe ich immer eine 1. Ohne den Externen Interrupt geht das. Wo ist meine Fehler ?
µC? Sprache? Port? Pin? Programm? Sinn? Mfg und3t4ker
Das Programm ist in c geschreiben und der Interupt Pin ist INT1. Geht es den Grundsätzlich ?
Gast
#791485
Hi Und wo ist dein Interruptroutine? MfG Spess
hier ist die Interruptroutine:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Die Funktion Signal_messen_und_auswerten() misst am INT1 Pin leider nur 1en. Mit diesem Code funktion es:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
ok, Verschachtelte Interrupts. Gibs es Tricks mit denen man das umgehen kann ? ich hab da auch noch ein anders Problem. ich will das mein hauptprogramm solange wartet bis ein Interupt 10mal auftritt. Ich habs so lösen wollen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
aber es geht einfach nicht, die while(i<10); wird nie abgebrochen ? Liegt es daran das die Schleife einfach weg optimiert wird ?
Standardantwort (kommt mindestens 10 mal am Tag)
1 | |
dann kommt wengistens schnell ne antwort. ist aber sehr kommisch, das man goabale variablen extra angeben muss.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.