mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EICRA mit ATmega128


Autor: Neun-elfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Codeauschnitt:

ldi temp3, 0b01000000
out GIMSK, temp3     ;ext int0 aktiviern in General Interupt Mask

ldi temp3, 0b00000011
out EIMSK, temp3     ;ext int0 aktiviern in Ext Interupt Mask

ldi temp3, 0b00001010
out EICRA, temp3    ;ext int0 und int1 aktivieren bei fallender Flanke

sei

loop:

  rjmp loop


Hallo leute,

ich bastele an meiner Diplarbeit und stehe seit ein paar Tagen vor dem
Problem, mit den INterupts, meinen Atmega anzusteuern. Mittlerweile tut
das auch soweit, allerdings habe ich noch ein Problem, zu dem ich keine
Lösung finde:
Wenn ich mit dem EICRA den Interupttrigger auf fallende Flanke setzen
möchte, bekomme ic hvom Compiler folgende Fehlermeldung:

E:\Arbeit\Diplomarbeit\AVR\040617\Timer040621.asm(78) : error :
Illegal argument type or count
Assembly complete with 1 error


Dies passiert, bei egal welcher einstellung. Jetzt triggert er
natürlich auf ein low, d.h. es funzt trotzdem, da bei 8Mhz keiner
shcnell genug den bttonb loslassen könnte, aber es ärgert mich, das ich
das nicht hinkrieg mit dem Register..

Wer kann mir helfen?

Danke

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sers,

also wenn man mal F1 drück kommt man in die Hilfe. Da steht dann drin
das der out Befehl für Adressen von 0 bis 61 funktioniert. Laut
Datenblatt ist das Register aber auf Adresse 6A, also leicht
außerhalb.
So wird das also nix.

seb

Autor: Neun-elfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die INfo,

aber wenn ich in meiner Hilfe was gefunden hätte, dann hätte ich mir
auch die Frage her gespart. (ich benutze AVRStudio 4)

Ich habe übrigens gerade nocheinmal nachgesehn und nichts gefunden. Mag
auch an meiner mangelnden Suchqualität liegen, ic hlasse mich gern eines
Besseren belehren.

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

;Externe Interrupts aktivieren
lds    temp1,EICRA
sbr    temp1, 1<<ISC11 | 0<<ISC10 | 1<<ISC01 | 0<<ISC00
sts    EICRA,temp1

;Int4-Int6: "falling edge"
in    temp1,EICRB
sbr    temp1, 1<<ISC61 | 0<<ISC60
sbr    temp1, 1<<ISC51 | 0<<ISC50 | 1<<ISC41 | 0<<ISC40
out    EICRB,temp1

in    temp1,EIMSK
sbr    temp1, 1<<INT6 | 1<<INT5 | 1<<INT4 | 1<<INT1 | 1<<INT0
out    EIMSK,temp1
in    temp1,EIFR
sbr    temp1, 1<<INTF6 | 1<<INTF5 | 1<<INTF4 | 1<<INTF1 | 1<<INTF0
out    EIFR,temp1

So mache ich das. Wie Du siehst verwende ich "out" bei EICRB, aber
"sts" bei EICRA.

Das liegt an dem Problem, was Sebastian schon angesprochen hatte -->
OUT geht nicht überall. War für mich aber auch erst verwirrend!
Theoretisch kann man immer STS verwenden, muß dann aebr 63 oder so
immer dazuzählen bei den sonst OUT-Befehlen.

Also: Probier's mal mit STS anstatt OUT!

Sebastian

Autor: Neun-elfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thanx Sebastian,

das ist genau was ich suchte. Habe STS in der Hilfe gefunden, war mir
aber nicht klar über die Anwendung... bin noch recht blutiger
Anfänger.

Danke

Torsten

Autor: Sebastian Wille (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Torsten,

gern geschehen!

Über LDS und STS kannst Du auch auf die 4KB SRAM zugreifen. Da kannst
Du z.B. "Variablen" abspeichern, falls die Register nicht mehr
ausreichen.

Sebastian

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.