hätte da mal eine frage: ich lese das Timer Register TCNT1 aus. Das funktioniert auch.Aber was bekomm ich da heraus? Also ich schreibe den Registerwert gleich in eine Variable ist der ausgelesene wert binär oder hexadezimal oder dezimal? ich müsste mit dem ausgelesenen wert nämlich weiterrechnen und müsste daher wissen was es genau ist. Mfg ralph
hier kurz der code: also mit der variable zeit müsste ich dann weiterrechnen
1 | |
2 | zeit = READ_TCNT1(); |
3 | |
4 | unsigned int READ_TCNT1() |
5 | {
|
6 | unsigned char sreg; |
7 | unsigned int i; |
8 | |
9 | sreg = SREG; // save global interrupt flag |
10 | cli(); // disable interrupts |
11 | i = TCNT1; // read TCNT1 |
12 | SREG = sreg; // restore global interrupt flag |
13 | return i; |
14 | }
|
Es sind Register dort kann man nur zahlen ablegen, Zahlen können erstmal nich binär oder hexadezimal oder dezimal sein. (nur wenn sie als String verarbeitet werden). Die Frage ist also schon vom Grundsatz her falsch.
Binaer, Hex, ASCII, oder Dezimal sind Interpretationen desselben. Ein Byte nimmt die Werte 0..255 an, das sollte genuegen.
Also weisst Du: Das ist nun SOWAS von grundlegend, das ich meine, das Du hier trollst.
also im TCNT1 Register steht ein Wert zwischen 0 - 65535 drin (16 bit) und wenn ich den auslese -->in variable schreibe zb int i was hab ich dann dort drin stehen?? ist das hexadezimal oder binär? wenn ich in ein register schreibe muss ich ja auch eine hexadezmale zahl hineinschreiben oder binär? Mfg ralph
du schreibst NIE eine hexadezimal oder binär Zahl in ein Register, es ist immer nur eine zahl. Der compieler wandelt es vorher um.
Binär, hexadezimal, dezimal sind nur verschiedene Darstellungen von immer demselben: Einer Zahl Die Frage: Was hab ich in einer Variablen macht daher keinen Sinn. Du hast eine Zahl da drinnen stehen. Diese Zahl kannst du dir binär, dezimal oder hexadezimal (ider zu jedem anderen beliebigen Zahlensystem) anzeigen lassen. Aber es ist und bleibt einfach nur eine Zahl.
ralph wrote:
> also im TCNT1 Register steht ein Wert zwischen 0 - 65535 drin (16 bit)
Ja, unsigned... und signed, also Vorzeichenbehaftet? Binär, Hex, Deziml,
OCTAL... Alles nur verschiedene Schreibinterpretationen eines
Registerzustandes...
16 Bit, alle auf 1: Kann man in binär mit 1111 1111 1111 1111 oder in
HEX mit 0xFFFF oder Dezimal mit 65535 (unsigned) oder -32767 (signed)
interpretieren... Octal weiss ich gerad ausm Kopf nicht (schäme mich,
sorry :) )
Ließ ein BUCH dazu. Oder ein Tutorial. Oder ein Vorlesungsscript aus
Informatik1!!!
der vollständigkeitshalber noch das Oktal 0xFFFF = 65535 = 0b1111111111111111 = (okt)177777 es ist alles das gleiche und egal was du ins Register reinschreibst, es wird danach immer das gleiche drin stehen.
ja danke ich habs mittlerweile auch gecheckt!! ;) hab irgendwie einen denkfehler gehabt!!! da hätt ich selber auch darauf kommen müssen!!!!! sorry, aber td danke das ihr mir wieder auf die sprünge gaholfen habt!!! MFG ralph
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.