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
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.
Schau mal im Datenblatt ganz hinten die Tabelle "IO register decription". Da sind alle Registerbytes aufgelistet, mit den Bedeutungen der Bits und ihre Abkürzungen.
Ah alles Klar da steht bei: MCUCR und Bit1 -> ISC01 MCUCR und Bit3 -> ISC11 Bit 1 und 3 macht dann -> 0b00001010 und bei: GICR und Bit7 -> INT1 GICR und Bit6 -> INT0 Bit7 und Bit6 macht dann -> 0b11000000 Danke Gast. @ Karl heinz: http://www.mikrocontroller.net/articles/AVR-Tutorial:_Interrupts -> in dem Beispiel
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 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
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?
ich muss jetzt kurz weg aber ich schreib dir heut abend nochmal in den thread Danke auch dir Reinhard
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.