Hallo, Ich möchte mit Hilfe des PD2 (at90s4433, INT0) Eingangs Servo-Pulse messen. Mein Problem ist, dass der Interrupt nur auselöst wird, wenn ich mein Finger auf die Schaltung, bzw. auf den(die) PIN(s) mit dem Interrupteingang lege. Wenn ich meine Hand nun entferne läuft das Programm, von 0..bis max 1 Sekunde weiter, bis die einkommenden Siganle wieder nicht mehr erkannt werden. Weis jemand, woran das liegen könnte? Danke Zoltan
Es ist definitiv kein Wackler oder kalte Lötstelle. Trotdem danke für den Tipp. Wenn ich an den benachbarten Ports PD0,PD1 den UART anschliesse, werden die Interrupts, nachdem ich die Schaltung wieder unten angetippt habe, erkannt. So aber brechen die Signale nicht mehr nach eine Sekunde ab. Ich poste hier mal einen Teil des Programmes, vielleicht liegt es ja daran. outp(0x00, DDRD); // use PortD PIN2 for input (signal) outp(0x04, PORTD); // pull up PIN2 outp((1<<INT0), GIMSK); // enable external int0 (PD2) outp((0<<ISC01)|(1<<ISC00) , MCUCR); // any logical change creates interrupt0 Vcc 5V GND 0V Agnd 0V Aref (poti-->) 4V Avcc 10uH+100nF "Analog Ground Plane"
Hat sich erledigt! Mein Programm hat sich nach dem Start immer aufgehängt, daran lag es. Mit dem Interrupt war alles in Ordnung.
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.