Forum: Mikrocontroller und Digitale Elektronik Wert in zwei 8-bit teilen


von Andreas S. (andi1301)


Lesenswert?

Hallo, ich habe ein problem in Bascom (ja, ich weis.............). Ich 
bin gerade dabei einen DAC zu programmieren, und stelle es mir wie folgt 
vor.
Es ist ein 8-Kanal DAC. Das Datenwort das gesendet werden muß ist ein 
16-Bit Wort. Bit 0-12 enthällt den wert und 13-16 die Adresse des 
Kanal´s.
Wenn ich nun den wert ändere, und die Adresse das Kanal´s wider dazu 
addiere, so erhalte ich ja wider das Datenwort zum senden. Da ich aber 
mit dem SPIOUT-Befehl nur 8-Bit senden kann, muß ich es irgendwie 
zerlegen. Wie könnte ich das am besten machen ? Bitte um Hilfe........

von hans (Gast)


Lesenswert?

also in c würd ich sowas machen (sieben und maskieren):


uint16 wert = ?????;
uint8 high_byte, low_byte;

high_byte = (uint8) (wert >> 4) & 0xFF;
low_byte = (uint8)  wert & 0xFF;

von Paul Baumann (Gast)


Lesenswert?

Mit dem Befehl "HIGHW" kannst Du Dir von einer Wordvariable das obere
Byte absägen und mittels Bitmanipulation (UND/ODER) die 3 obersten Bits
isolieren.

MfG Paul

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.