INT1 macht Probleme bei AT89c51cc03

Gast #1374602
Lesenswert?

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?
Gast #1374628
Lesenswert?

> 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
#1374654
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren