mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Initialisisung von Interrupt


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab da ein problem mit der initialisierung meines externen interrupts.

.org 0x000
  rjmp  Initial
  rjmp  Inter0

.org 0x00D
Initial:
  ldi tmp, High(RAMEND)  ; Stack initialisiert
  out $3E, tmp
  ldi tmp, Low(RAMEND)
  out $3D, tmp
        in tmp, $35
  ori tmp, 0b00000011  ;Int0 auf steigende Flanke setzen MCUCR
  out $35, tmp
  in tmp, $3B
  ori tmp, 0b01000000     ;Int0 freigeschaltet GIMSK
  out $3B, tmp
  sei

Main:
  nop
  rjmp Main

Inter0:
  nop
  reti

sobald der debugger die stelle abarbeitet, an der das globale 
interruptflag gestzt wird, wird noch ein weiterer befehl ausgeführt, bis 
er daraufhin in die Inter0-routine springt. wenn diese abgearbeitet ist 
springt er wieder zurück und arbeitet das programm ganz normal ab. habe 
auch schon erst das globale interruptflag gesetzt und dann das TIMSK 
maskiert oder den GIFR vorher gelöscht (alles ohne erfolg).
ich benutze das AVR-Studio 4 zum ausprobieren.
hat jemand einen tip? bin am verzweifeln!
mfg patrick

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich benutze  auch AVR-Studio 4 und wenn ich das so lese beschleicht mich 
das dumme Gefühl "mit INT0 ist was nicht ok" !  Bei  mir sollte INT0 auf 
beide Flanken reagieren, was aber per Pinumschaltung nicht möglich war. 
Ich musste INTF0 setzen um einen auszulösen.
Übrigens werden die Flags durch beschreiben mit 1 gelöscht, kannst du ja 
mal vor "sei" machen.
Gruss Uwe

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein freund von mir hatte auch schon unerklärliche interrupt probleme mit 
dem AVR-Studio 4. vieleicht ist es das programm. kann denn jemand iein 
besseres empfehlen?

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr studio 3

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es liegt am avr studio 4! studio 3 setzt beim beschreiben des MUCURs 
einen interrupt-flag.

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.