Forum: Mikrocontroller und Digitale Elektronik Register abfragen


von ratziputz (Gast)


Lesenswert?

Hallo

ich würde gerne im TIMSKx Register die TOIEx abfragen. Wenn ich schreibe 
(1<<TOIEx) ist ja TOIEx durch eine Zahl zb. 1 deklariert.

Kann man eine Abfrage wie if(TOIEx == 1) machen?

MfG

von Nn N. (jaytharevo)


Lesenswert?

Du könntest so abfragen:
1
if((TOIEx & 0x01)==1)

Ich weiß jetzt nicht genau ob TOIEx bitadressiebar ist, wenn ja dann 
geht deine Variante natürlich auch.

von Klaus W. (mfgkw)


Lesenswert?

@ratziputz:
Machen kannst du das.

Dann bekommst du die Information, ob die Bitnummer TOIEx
den Wert 1 hat.
Willst du das?

von Nn N. (jaytharevo)


Lesenswert?

Mein Maske ist natürlich ein Blödsinn!
Ich hab, aus welchem Grund auch immer, angenommen, dass TOIEx das Bit1 
ist. Für die richtige Abfrage müsste man natürlich die Maske richtig 
gestalten. Welches Bit ist TOIEx?

von Nobody (Gast)


Lesenswert?

ratziputz schrieb:
> ich würde gerne im TIMSKx Register die TOIEx abfragen.

OK. Worauf hin?

>Wenn ich schreibe (1<<TOIEx) ist ja TOIEx durch eine Zahl zb. 1 deklariert.
Nein. Das
1
(1<<TOIEx)

ist selbst keine Deklaration und bewirkt auch keine.
Zur Bedeutung von "Deklaration" in C siehe: 
http://www.c-plusplus.de/forum/viewtopic-var-t-is-61231.html

Zu Schiebeoperationen und mehr siehe: 
http://www.mikrocontroller.net/articles/Bitmanipulation

>Kann man eine Abfrage wie if(TOIEx == 1) machen?

Sicher.
Fragt sich wozu.
Das Bit musst Du selbst im Programm setzen. Wozu dann hinterher testen 
ob Du es gesetzt hast?

von STK500-Besitzer (Gast)


Lesenswert?

>Für die richtige Abfrage müsste man natürlich die Maske richtig
>gestalten. Welches Bit ist TOIEx?
1
if (TIMSK & (1<<TOIEx)) ...

von Nobody (Gast)


Lesenswert?

>Welches Bit ist TOIEx?

Welcher Controller? Warum guckst Du nicht selbst in das Datenblatt?
Falls Du behindert oder blind bist helfen wir Dir natürlich gerne.

von ratziputz (Gast)


Lesenswert?

>Dann bekommst du die Information, ob die Bitnummer TOIEx
>den Wert 1 hat.
>Willst du das?

Wenn TOIEx den Wert 1 hat ist es enabled- das will ich testen.


if((TOIEx & 0x01)==1)
if (TIMSK & (1<<TOIEx))

Wozu brauche ich die UND-Verknüpfung.



>Falls Du behindert oder blind bist helfen wir Dir natürlich gerne.

Ich danke dir vielmals dass du so hilfsbereit bist weil ich behindert 
bin. Es ist sehr nett dass du nicht diskriminierend bist.

von Nobody (Gast)


Lesenswert?

ratziputz schrieb:
>Ich danke dir vielmals dass du so hilfsbereit bist weil ich behindert
>bin. Es ist sehr nett dass du nicht diskriminierend bist.

Das sollte Dich keineswegs herabsetzen. Wieso verstehst Du das in dieser 
Weise? Ich habe das nur vermutet, weil Du nicht selbst nachliest, was Du 
hier fragst.
Es ist ja keine Schande Legastheniker zu sein oder blind oder sonstwas. 
Sag es einfach.
Die Fragen, die Du hier stellst sind absolute Grundlagen. Daher ist 
meine Vermutung wohl nicht unbegründet, denn es muss ja einen Grund 
dafür geben, das Du das nicht selbst nachliest, oder?

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
Noch kein Account? Hier anmelden.