Hallo alle zusammen,
Ich hoffe ich bin hier richtig. In meinem nächsten Projekt will ich bei einem Attiny 13 die PCINT Eingänge benutzen.
Als erstes habe ich mir mal das Datenblatt angeschaut. Da ich überhaupt nicht verstanden habe, habe ich mir dann alles was die Interrupts betrifft mal ins Deutsche übersetzt.
Soweit habe ich folgendes Verstanden.
Ich muss die Interrupts global einschalten. Ich muss dem Controller sagen, dass ich die PCINTs benutzen will, und ich muss ihm sagen welche Pins genau. Dazu sieht mein Programm so aus.
Nun zum eigentlichen Problem.
Der PCINT löst ja sowohl bei fallender als auch bei steigender Flanke ein Interrupt aus. Ich will aber nur, dass die fallende Flanke einen auslöst. Nach allem was ich bis jetzt gelesen habe muss ich das selber in meiner Interrupt Routine auswerten. Hierzu fällt mir allerdings kein Befehl ein.
Die fallende Flanke wird von einem anderen MC ausgelöst, ich muss mich also nicht um Taster prellen oder so etwas kümmern.
Mit der Forumssuche konnte ich leider auch nichts finden.
Das zweite Problem was ich habe, ich möchte zwei Pins benutzen. Dazu muss ich in der Interrupt Routine erst mal abfragen welcher Pin den Interrupt ausgelöst hat. Geht das so einfach mit If Pinb.0 = 0 Then? Oder muss ich dazu einen anderen Befehl benutzen.
Danke für eure Unterstützung
Timo
Ich hoffe ich bin hier richtig. In meinem nächsten Projekt will ich bei einem Attiny 13 die PCINT Eingänge benutzen.
Als erstes habe ich mir mal das Datenblatt angeschaut. Da ich überhaupt nicht verstanden habe, habe ich mir dann alles was die Interrupts betrifft mal ins Deutsche übersetzt.
Soweit habe ich folgendes Verstanden.
Ich muss die Interrupts global einschalten. Ich muss dem Controller sagen, dass ich die PCINTs benutzen will, und ich muss ihm sagen welche Pins genau. Dazu sieht mein Programm so aus.
Code:
Sreg.7 = 1 'Globale Interrupts einschalten
Gimsk.5 = 1 'PCInterrupt einschalten
On Pcint0 Interrupt 'Springe zu Interrupt
Pcmsk = &B00000011 'Einschalten pcint0 pcint1 (portb.0 portb.1)
Nun zum eigentlichen Problem.
Der PCINT löst ja sowohl bei fallender als auch bei steigender Flanke ein Interrupt aus. Ich will aber nur, dass die fallende Flanke einen auslöst. Nach allem was ich bis jetzt gelesen habe muss ich das selber in meiner Interrupt Routine auswerten. Hierzu fällt mir allerdings kein Befehl ein.
Die fallende Flanke wird von einem anderen MC ausgelöst, ich muss mich also nicht um Taster prellen oder so etwas kümmern.
Mit der Forumssuche konnte ich leider auch nichts finden.
Das zweite Problem was ich habe, ich möchte zwei Pins benutzen. Dazu muss ich in der Interrupt Routine erst mal abfragen welcher Pin den Interrupt ausgelöst hat. Geht das so einfach mit If Pinb.0 = 0 Then? Oder muss ich dazu einen anderen Befehl benutzen.
Danke für eure Unterstützung
Timo