Gast
#1610928
Hallo Kann mir jemand folgende Programzeile aus dem AVR-Tutorial (Interrupts) erklähren?
1 | |
2 | |
3 | |
4 | |
5 | |
Danke
|
Anzeige
|
Fragen zu Interrupts (AVR-Tutorial)
Gast
#1610928
Hallo Kann mir jemand folgende Programzeile aus dem AVR-Tutorial (Interrupts) erklähren?
Danke Was verstehst du nicht? Das << oder die Texte (INT0)? Na in der oberen Zeile wird Bit ISC01 ISC11 gesetzt. Und in der unteren Bit INT0 und INT1. Oder habe ich die Frage falsch verstanden? Was die Bits bedeuten, müsste sich im Datenblatt nachlesen lassen. EDIT: das << ist ein einfacher Schiebebefehl, der die Zahl davor um n Stellen nach links verschiebt. n ist hierbei die Zahl nach dem <<. Das ganze gibts auch noch als >> in die andere Richtung ISC01 beispielsweise hat irgendeinen konstanten Wert zwischen 0 und 7, weiß jetzt nicht genau, welchen.
Gast
#1611096
Ja war vll bischen ungeschickt formuliert! Meinte aber schon denn << Befehl, aber auch warum hier der Oder(|)-Operator verwendet wird und nicht der Und(&)? Weis jetzt nicht genau ob ichs verstanden hab: Also ich hab nachgeschaut und ISC00 repräsentiert 0 und ISC01 müsste 1 repräsentieren... Heißt das dann das durch den Befehl:
im Register temp das erste und zweite Bit auf gesetzt werden? Bleibt aber immernoch die Frage mit dem | Operator...?
Gast
#1611100
Hi
>Bleibt aber immernoch die Frage mit dem | Operator...?
(1<<ISC01)= 01
(1<<ISC11)= 10
01 & 10 = 00
01 | 10 = 11
Klar?
MfG Spess
Gast
#1611106
Ok also habs verstanden denk ich :) aber ich geh mal davon aus diese Werte nur Beispielhaft verwendet wurden oder? [/avrasm](1<<ISC01)= 01 (1<<ISC11)= 10[/avrasm] ISC01 stellt (beim atmega8 zuminderst) das 1te Bit dar und ISC11 das 3te...
Gast
#1611112
Hi >aber ich geh mal davon aus diese Werte nur Beispielhaft verwendet wurden >oder? Ja. Würde für ISC01=0 und ISC11=1 gelten. MfG Spess Einsteiger schrieb: > Ok also habs verstanden denk ich :) > aber ich geh mal davon aus diese Werte nur Beispielhaft verwendet wurden > oder? > [/avrasm](1<<ISC01)= 01 > (1<<ISC11)= 10[/avrasm] > ISC01 stellt (beim atmega8 zuminderst) das 1te Bit dar und ISC11 das > 3te... Darum verwendet man ja auch die symbolischen Namen aus dem Include File und nicht den numerischen Wert. Bei einem anderen Controller "können" das andere Werte sein. Dann hat man zumindest damit kein Problem beim Portieren. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|