2016-11-12 2 views
0

Ich weiß, dass der 8051 Interrupts sowohl als level getriggert als auch flankengetriggert verarbeiten kann. Damit sie jedoch arbeiten können, muss der Stift konstant auf einem hohen und Übergang zu einem niedrigen sein. Was kann ich tun, wenn das Gerät, das mit dem Pin verbunden ist, konstant niedrig ist und ich möchte, dass der ISR auslöst, wenn er hoch geht? Ist ein NICHT-Tor meine einzige Option? Oder kann ich das Problem mit Software umgehen?Gibt es eine Möglichkeit, externe Interrupts mit steigenden Flanken in einem 8051-Mikroprozessor aktiv zu machen?

+3

Wechselrichter ist der Weg zu gehen, yeah. Es gibt einige 8051-Pakete, die Extras haben, die steigende Flanke-Interrupts unterstützen, IIRC. Aber der eigentliche 8051 unterstützt das nicht. – BadZen

+0

Wenn das Gerät beim Auslösen eines Interrupts die Interrupt-Leitung impulsiert, hat es am anderen Ende des Impulses die entgegengesetzte Flanke. Der Puls muss lang genug sein (ein Zyklus auf einem echten 8051), aber das ist unabhängig davon wahr. Es spielt keine Rolle, ob es normalerweise von dem Gerät hoch oder niedrig gehalten wird, die Interrupt-Leitung muss nur von mindestens 1 Zyklus von hoch zu mindestens 1 Zyklus von niedrig gehen, um als flankengetriggerter Interrupt erkannt zu werden. Wenn das Gerät beim Auslösen des Interrupts den Pegel von Low auf High ändert und dann hoch bleibt, bis der Interrupt gelöscht ist, benötigen Sie den Inverter. –

Antwort

1

Es gibt keine Möglichkeit, das Funktionieren von Hardware-Interrupts mithilfe von Software zu ändern. Nicht Gate ist die einzige Option, es sei denn, Sie möchten zu einem anderen Controller wechseln, der aktiven High Interrupt unterstützt.

Verwandte Themen