Hallo! Ich versuche nun seit Stunden den externen Interrupt in Codevision zu aktivieren. Es funktioniert auch recht gut. Ich stelle den INT0 auf fallende Flanke ein. Die Prozedur wird aufgerufen - aber auch bei einer steigenden Flanke! Völlig egal, was ich in das MCUCR Register schreibe. GIMSK=0b01000000; // INT 1 deaktivieren - INT 0 aktivieren MCUCR=0x00000010; // Fallende Flanke INT 0 aktivieren GIFR=0x01000000; Was mache ich hier falsch? Warum wird die Prozedur bei jeder Flanke aufgerufen? Wozu wird das GIFR Register gebraucht? Aus dem Datasheet bin ich nicht ganz schlau geworden. Danke! Steffen
mhmm hast du den Code ausm Sourcecode kopiert? das is nämlich auf jeden fall erstma falsch: MCUCR=0x00000010; // Fallende Flanke INT 0 aktivieren GIFR=0x01000000; wenn dann müsste da anstelle eines x ein b hin also: MCUCR=0b00000010; // Fallende Flanke INT 0 aktivieren GIFR=0b01000000; Ob das dein Problem beseitigt weiß ich aber nich :) sicher das der Interrupt auch auf de rsteigenden Flanke ausgelöst wird je nach dem wie du den Interrupt beschaltet hast könnte es ja auch sein, dass du einen Prell Effekt hast (Wenn du einen Schalter zum Auslösen benutzt)
Hia ape! Du hast natürlich recht. Ich such da stundenlang nach dem Fehler und dann ist es so was blödes! Aber mir ist es einfach nicht aufgefallen. Es geht jetzt prima! Danke! Grüße Steffen
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.