Gast
#755726
Kann man in ATMega-Interrupts andere Interrupts ein/ausschalten? Im angehängten Code scheint das nicht zu funktionieren. Ich benutze abwechselnd Pin-Change-Interrupt und Timer-Interrupt, um den Beginn eines Bits zu finden (Pin-Change) und dann dessen Mitte abzuwarten (Timer-Interrupt). Die beiden Interrupts sollen sich abwechselnd gegenseitig einschalten. Der Code soll das ZACWire-Protokoll per Interrupts einlesen. ZACwire-Sensoren senden Pakete mit 20 Bit. Jedes Bit-Fenster beginnt mit einem Wechsel von High auf Low. Dafür nehme ich den Pin-Change-Interrupt des ATMega644, Pin B1. Ca 60us später ist das Signal entweder auf High gegangen oder Low geblieben - dementsprechend ist es ein 1-Bit oder ein 0-Bit. Das Bit-Fenster endet nach 125us, bis zu dem Zeitpunkt ist das Signal auf jeden Fall High gegangen. Mein Code - Wechsel zwischen Pin- und Timer-Interrupt (angehängt) - funktioniert nur ein Bit lang. Es sieht so aus, als ob der Timer-Code den Pin-Change-Interrupt nicht wieder aktivieren kann.