Was bedeutet das folgende Codefragment? output(PORTB,0x38); output(DDRB,0x07);
Der Code macht erst im Zusammenhang Sinn. PortB:=0x38 DDRB:=0x07 Ohne das Schema dazu wird's schwierig werden, da ein Hardwarepin bewegt wird. B.
damit wird definiert, was auf welchen pins ausgegeben werden soll..., musst du aber zuerst in bin umrechnen, damit du wirklich weißt auf welchem Pin was (0 oder 1) ausgegeben wird
> Was bedeutet den die 0x38? > Binär == 00011100 ??? stimmt nicht 0011 1000 /rahul42
lad dir einen bin/hex-converter herunter (http://www.flamisch.at/ ; downloads), aber mit deiner annahme hast schon recht, da kommt dann z.B. 01001100, jedes bit steht für einen anderen pin deines ports....
> wie wäre es mit Windows Calc ?!
Was soll der Quatsch? Jede Hex-Ziffer steht doch für ein Nibble (4 Bit),
die wird man doch wohl im Kopf übersetzen können, ist jedenfalls
leichter als das "kleine Einmaleins".
/42
Also könnte ich output(PORTB,0x38); output(DDRB,0x07); auch als PORTB |= ((1 << PB5) | (1 << PB4) | (1 << PB3)); PORTB &= ~((1 << PB7) | (1 << PB6) | (1 << PB2) | (1 << PB1) | (1 << PB0)); DDRB |= ((1 << PB2) | (1 << PB1) | (1 << PB0)); DDRB &= ~((1 << PB7) | (1 << PB6) | (1 << PB5) | (1 << PB4) | (1 << PB3)); schreiben?
Fast. output setzt den Port. Das entspricht einer Zuweisung. Ergo:
1 | PORTB = ((1 << PB5) | (1 << PB4) | (1 << PB3)); |
2 | PORTB = ~((1 << PB7) | (1 << PB6) | (1 << PB2) | (1 << PB1) | (1 << PB0)); |
Mit |= kann man Bits setzen Mit &= kann man Bits löschen wobei jeweils der vorhergehende Zustand des Ports in die Berechnung mit eingeht.
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.