Interrupt Tutorium

Gast #1470554
Lesenswert?

Hallo ich arbeite gerade das Tutorium durch:

Dabei ist mir eine Sache bei den Interrupts unklar:

         ldi temp, 0b00001010  ; INT0 und INT1 konfigurieren
         out MCUCR, temp

         ldi temp, 0b11000000  ; INT0 und INT1 aktivieren
         out GICR, temp

Woher kommen die Werte ?

In der definition steht bei MCUCR 0x35 also 0b00110101 und bei GICR 0x3b 
also 0b00111011. Die INT0 und INT1 liegen an PD2 und PD3 also 
0b00001100. und bei ISC steht in der definition:

.equ    ISC11   =3
.equ    ISC10   =2
.equ    ISC01   =1
.equ    ISC00   =0

und für GICR

.equ  INT1  =7
.equ  INT0  =6
.equ  IVSEL  =1
.equ  IVCE  =0

kann mir das nochmal jemand langsam erklären
#1470573
Lesenswert?

Auf welchen Teil des Tutoriums beziehst du dich jetzt genau?

Ansonsten gilt (wie immer):
Die einzigen die sowas im Detail tatsächlich definieren, sind die Leute 
bei Atmel. Und die haben alles was es dazu zu wissen gibt, im Datenblatt 
niedergeschrieben. Wenn du also wissen willst, was diese 
Konfigurationswerte exakt machen (sofern es nicht an dieser Stelle im 
Tut beschrieben ist), dann musst du im Datenblatt nachsehen.
#1470615
Lesenswert?

Jens schrieb:
> Dabei ist mir eine Sache bei den Interrupts unklar:
>
>          ldi temp, 0b00001010  ; INT0 und INT1 konfigurieren
Das ist der Inhalt, der in das Steuerregister eingetragen werden soll, 
um die Funktion zu aktivieren. Siehe Datenblatt.
>          out MCUCR, temp
Hier wird der Inhalt in das Steuerregister eingeschrieben.
>          ldi temp, 0b11000000  ; INT0 und INT1 aktivieren
>          out GICR, temp
Das gleich nochmal für das nächste Steuerregister.
> Woher kommen die Werte ?
Aus dem Datenblatt des Prozessors.
>
> In der definition steht bei MCUCR 0x35 also 0b00110101 und bei GICR 0x3b
> also 0b00111011. Die INT0 und INT1 liegen an PD2 und PD3 also
> 0b00001100.
Dies sind die physischen Adressen, über die diese Steuerregister 
angesprochen werden. Das hat nichts mit deren Inhalt zu tun.
Und wo stehen die wohl? Natürlich, im Datenblatt :-)

Rainhard
#1470617
Lesenswert?

Karl heinz Buchegger schrieb:
> Jens schrieb:
>
>> @ Karl heinz:
>> http://www.mikrocontroller.net/articles/AVR-Tutorial:_Interrupts
>> -> in dem Beispiel
>
> Alles klar. Danke für den Hinweis.
> Das ist in der Tat nicht sehr glücklich geschrieben. In der Einleitung
> werden die Bits immer nur beim Namen genannt und im Programm werden die
> Bitnummern direkt in die Binärzahl kodiert.

@Jens
Könntest du nochmal im Tuturial drüberschauen. Ich hab das mal ein wenig 
verändert. Ist das jetzt klarer?
Gast #1471883
Lesenswert?

jao, so isses im ersten beispiel klarer

im zweiten steht zwar jetzt immer noch das selbe.
kannst ja noch dazuschreiben das man in der "IO register
decription" Tabelle nach MCUCR und GICR schaut und bei den Bits wo INT0, 
INT1 oder ISC01, ISC11 eine 1 setzt und die anderen 0 lässt ist ja auch 
nich schwer nur hab ich gestern echt nicht gewusst dass die Tabelle die 
da angegebenen bits enthält

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren