Forum: Mikrocontroller und Digitale Elektronik Bitmanipulation Timer


von Oliver (Gast)


Lesenswert?

Hallo,
ich versuche gerade den Programmtext eines anderen nachzuvollziehen und 
hänge an folgender Stelle:

tccr0 |=(1<<cs02)| (0<<cs00)

Hat mein Timer nun den Wert 00000001; 00000010 oder 00000100?  oder was 
ganz anderes? xD

Danke und Grüße,
Oliver

von Johannes T. (johnsn)


Lesenswert?

Schau doch mal ins Datenblatt des uCs (Atmel nehme ich an). Das ist das 
Timer/Counter Control Register 0 und da gibts ne Beschreibung, was die 
einzelnen Bits machen.

CS wäre in dem Fall "Clock select", damit bestimmst du wie schnell dein 
Counter zählen soll!

von Peter II (Gast)


Lesenswert?

Oliver schrieb:
> Hat mein Timer nun den Wert 00000001; 00000010 oder 00000100?  oder was
> ganz anderes? xD

kann man nicht sagen weil man dafür den wert von tccr0 wissen müsste, 
denn hier wird nur ein Bit(cs02) zusätzlich gesetzt. Die anderen bleiben 
so wie sie sind.

von Ralf (Gast)


Lesenswert?


von Oliver (Gast)


Lesenswert?

also ausgehend von
00000000 erhalte ich
00000100 oder?

insofern würde tccr0 |=(1<<cs02) doch reichen?

der hintere Teil | (0<<cs00) also "oder 0" hat doch nie einen Einfluss 
oder sehe ich das falsch?

von Thomas E. (thomase)


Lesenswert?

Oliver schrieb:
> oder sehe ich das falsch?

Das siehst du richtig.

mfg.

von Sebastian H. (sh______)


Lesenswert?

Oliver schrieb:
> der hintere Teil | (0<<cs00) also "oder 0" hat doch nie einen Einfluss
> oder sehe ich das falsch?


Reichen schon, allerdings sieht man so direkt auf Anhieb wie die anderen 
Bits gesetzt werden und man kann es so sehr schnell anpassen wenn sich 
mal was ändert. Mach ich bei mir auch immer so, dass ich alle Bits 
angebe.

Man sollte nur sicherstellen dass vorher in den Bits auch wirklich 
überall 0 drin steht bzw. statt |= nur = verwenden.

von Thomas E. (thomase)


Lesenswert?

Sebastian H. schrieb:
> überall 0 drin steht bzw. statt |= nur = verwenden.

Und damit ändert man dann womöglich Bits, die für etwas ganz anderes da 
sind.

@Oliver (Gast)

Gewöhn' dir so einen Blödsinn gar nicht erst an.

mfg.

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.