mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit INT0 bei AVR4433 in Assembler


Autor: Dirk Schlage (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum.
Ich versuche einen Ereigniszähler mit AVR4433 zu bauen.
Wenn er fertig ist sollen die Pegeländerungen an Pin-INT0 pro Sekunde 
ausgegeben werden.

In dem angehängten Code wird ein Sekunden-Interrupt aktiviert und ein 
INT0.
Sekündlich wird ein Flag gesetzt dass die Ausgabe aktiviert.
Im INT0 werden die Zählervariablen inkrementiert.

Ich habe den Pin mit einem Pullup-Widerstand versehen und schliesse ihn 
dann gegen Masse kurz. Prellen würde ich also verstehen. Meistens 
Passiert gar nichts. Dann und wann bekomme ich unter Zwang den Zähler 
ein bisschen höher.

Irgendwas ist mit meinem INT0-Code falsch.

Meine Initialisierung sieht so aus:

  ldi rmp,0b01000000 ;
  out GIMSK,rmp
  ldi rmp,0b00000001 ;
  out MCUCR,rmp

  ldi rmp,0b01000000
  out GIFR,rmp

  sei

Kann mir jemand sagen was ich falsch mache?

Autor: Frank Wolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm,
also ich bin mir nicht sehr sicher, hatte aber die selben probleme bis 
ich das SREG gesichert habe ;-)

dazu könnte noch die problematik kommen das der int innerhalb des 
zählers mehrfach aufgerufen wird...
sooft bis nix mehr geht ;-)

hier mal ein kleiner auszug vonwegen struktur:

INT_1:
in      SREG_save, SREG   ; save...
rcall   INT1_off          ; einer reicht!
rcall   alarm             ; SMS Versand oder Anruf
rcall   INT2_on           ; hora! manos arriva!
out     SREG, SREG_save    ; rücksichern...
reti

INT1_on:
_setport     GIFR,  0b10000000 ; Interrupt loeschen
_enableport  GIMSK, 0b10000000 ; INT0 zulassen
ret
INT1_off:
_disableport GIMSK, 0b10000000 ; Interrupts aus
ret

evtl. hilfsts ;-)

greetx,
[cmp]

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.