Hallo, ich habe Probleme, dass der INT1 auslöst, obwohl zu dieser Zeit keine fallende Flanke kommt. Initialisieren mache ich so: EX1 = 0; //Ext Int 1 erst mal sperren IT1 = 1; //Ext Int 1 reagiert auf fallende Flanke Starten mache ich dann so: PinUSchall = 0; //startet Ultraschall Chip EX1 = 1; //Ext Int 1 freigeben PinUSchall = 1; Da ja der Pin schon auf Lo ist, sollte es doch keinen Interrupt mehr geben, erst wenn durch den Eingang dann eine fallende Flanke kommt. Oder wird sich die Flanke schon gemerkt und dann, wenn der Interrupt erlaubt ist, dann in die ISR Routine gesprungen? Kann ich dann die "Vormerkung" löschen?
> Oder wird sich die Flanke schon gemerkt und dann, wenn der Interrupt > erlaubt ist, dann in die ISR Routine gesprungen? Korrekt. > Kann ich dann die "Vormerkung" löschen? Ja, kannst du vor der Freigabe des Interrupts machen. Ob das so Sinn macht, ist die andere Frage... Was genau hast du denn vor? Ralf
Ich muss erst mit dem ersten Lo Impuls einen Ultraschallsesnsor starten. Dann wieder auf high setzen und warten, bis der Eingang wieder auf Lo geht. Die Zeit zwischen ersten Lo setzen und zweiten Lo bekommen ist proportional zur Entfernung. Ich hatte das so vor. Erst auf Lo ziehen, dann Zähler starten, dann kurze Zeit warten, dann auf High setzen und warten, bis der Eingang dann wieder auf Lo geht. Diese Flanke am INT1 sollte dann den Zähler auslesen. Diesen dann umrechnen und ich habe meine Entfernung bzw. Inhalt meiner Zisterne.
Matthias schrieb:
> Kann ich dann die "Vormerkung" löschen?
Ja.
Das ist auch üblich, wenn man nicht auf Ereignisse triggern will, die
schon Jahre her sind.
Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.