Hallo Leute. Ich stehe mal wieder vor einem weiteren Problem bei meiner Interrupt-funktion am ATtiny 45. Ich habe gemäss Datenblatt folgende Register gesetzt. SREG=0x80; // Global Interrupts ermöglichen MCUCR=0x03; // Interrupt wird auf die steigende Flanke an INT0 ausgeloesd Nun habe ich auf Seite 58 gelesen, dass der mikrocontroller den "I/O-clock" benötigt um einen Interrupt auf die steigende FlAnke auszulösen. Wie kann ich diesen "I/O-clock" aktivieren? bzw. muss man das überhaupt? !! Und ich habe auch noch ein zweites Problem :-( Ich verstehe auch nach durchlesen des AVR-Turtorial nicht, wie ich bei auslösen eines Interrupts ein erreignis (in meinem Fall: Variabel um 1 erhöhen ) ausführen kann (in C). Danke für eure Hilfe.
Der Hinweis mit dem I/O Clock ist nur relevant falls Du die Stromsparmodi benutzt. Man könnte dort auch die I/O Clock abstellen. Darf man aber nicht falls Du eben per Interrupt geweckt werden willst. Also der Atmel natürlich. Nicht Du! Dein C-Compiler sollte hoffentlich die Möglichkeit bieten C-Funktionen als Folge eines Interrupt aufzurufen. Meist geschieht dies über ein spezielles Schlüsselwort INTERRUPT oder ähnliches. Das Manual zum C-Compiler sollte darüber Informationen enthalten. Gruss Oops
wow... das war ja verdammt schnell. Danke vielmals. Können Sie mir ev. auch noch sagen für was genau das GIMSK register ist? habe den Text nicht ganz verstandenund weiss jetzt nicht ob ich dort das Bit 6 auch noch auf 1 setzen muss, oder ob die beiden register (MCUCR und SREG) ausreichen. Danke
GIMSK: GLobal Interrupt Mask Register Tatsächlich musst Du, falls Interrupts bei Pegel oder Flankenwechsel stattfinden sollten (so hast Du ja auch MCUCR gesetzt) auch das Bit 6 setzen damit der Interrupt stattfindet. Gruss Oops
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.