mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Neue Probleme mit Interrupt ATtiny45


Autor: Gimpel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Oops (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gimpel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Oops (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.