Hallo, wollte mal einen Interrupt mit meinem tiny13 realisieren, leider funktioniert es nicht. Es soll, wenn PB0(PCINT0) eine LOW-Flanke "sieht" in die ISR gesprungen werden, leider tut mein tiny dies nicht. Sitze jetzt schon 4 Stunden dran und ich finde den Fehler nicht. Vieleicht kann mir ja jemand weiterhelfen, danke schon mal im vorraus.
Hast du den Programmieradapter auch abgezogen ? Oder einen 244er Programmieradapter ? (mit Latch) In MCUCR muss für falling edge ("low flanke" wie du sagst) bit ISC00 gelöscht und bit ISC01 besetzt sein. Also: MCUCR = (1<<ISC01) oder MCUCR = 0b00000010 PCMSK muss gelöscht sein, da hier nur Pinchange Interrupts definiert werden PCMSK = 0 Außerdem setze mal in DDRB alles auf 0, und in PORTB Bit0 auf 1 (Pullup (falls benötigt)). Ansonsten extern Pullup! Außerdem nach "isr" noch ein paar befehle einfügen ;)
An PB0 ist kein PCINT (=Pin Change Interrupt) sondern ein INT (Interrupt). Pinchange interrupts reagieren immer auf jede high/low transition. Interrupts reagieren auf das, worauf man sie programmiert.
OK, ich muss dazu sagen daß ich ein blutiger anfänger bin, und dies mein erstes Programm mit einem interrupt ist. Natürlich habe ich es erst einmal mit dem Datenblatt brobiert (4Stunden lang), leider habe ich es nicht hinbekommen. Könnte mir nicht jemand sagen wie der code aussehen müsste? bzw ein Codebeispiel schicken?
> An PB0 ist kein PCINT (=Pin Change Interrupt) sondern ein INT > (Interrupt). Nein. Der INT0 ist auf PB1. @Thorran: Du mußt dir zunächst mal überlegen, was du genau willst. Das, was du in deinem Ursprungsposting geschrieben hast, geht so nämlich nicht. PCINT und INT0 sind zwei verschiedene, voneinander unabhängige Interrupts. Da du in deinem Code beide kunterbunt mischst, nehme ich an, daß dir das nicht bewusst war. Bei PCINT kannst du einstellen, auf welche I/O-Pins er triggern soll, dafür triggert er aber immer auf beide Flanken. INT0 ist fest mit PB1 verdrahtet, aber dafür kann man einstellen, auf welche Flanke(n) er triggern soll.
Hallo, danke euch allen für die Antworten, bin halt ein anfänger, was solls jetzt funktioniert es.
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.