PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einen 4bit und 8bit wertals 12bit Wert verarbeiten



Olle_Filzlaus
14.08.2007, 10:14
Hallo,

ich lese einen 12bit AD-Wandler mittel I2C Bus aus. Das funzt prächtig. Geht von 0 - 4096.

Die Werte werden aber in zwei Arbeitsschritten abgeholt und sind jeweils 8bit lang.

Einmal bekomme ich Steuerbits (y, sind immer gleich) und die oberen Werte (x) und dann extra nochmal die unteren Werte (x).

Also yyyyxxxx und xxxxxxxx

Jetzt will ich von dem ersten Byte die letzten 4 stellen nehmen und das mit dem zweiten zusammmen rechnen und die zahl zum rechnen nehmen.

ich habe das mit der umwandlung in eine string versuch und die letzten stellen wollte ich zum weiterrechnen benutzen. habe das aber nicht hinbekommen. irgendwie hätte ich jabeide zahlen in einen string umwandeln müssen. das rechnen geht aber mit strings nicht.

als zweites habe ich das mit dem & versucht. also 00001111 und yyyyxxxx ergeben ja die letzen 4 stellen. damit hätte ich ne normale zahl mit xer ich die andere adddieren kann. Aber irgendwie habe ich es so auch nicht hinbekommen.

zur zeit gebe ich die zahlen einzeln per rs232 aus und rechne die in nem kleinen delphi perogrammm aus und gebe den großen wert wiedder zurück. aber das uss doch auch kleiner und leichter im Atmega gehen.

Habt ihr ne Idee wie ich die Zahlen zusammen bekommme? Habe schon im Netz und im Forum gesucht, aber habe nichts passendes gefunden.

thx for help

Arno

for_ro
14.08.2007, 11:15
Schau dir mal
varn = MAKEINT(LSB , MSB)
an

Gruß

Rolf

StevieL
14.08.2007, 11:22
Hallo Arno,

du könntest die Variablen auch mit der Option "Overlay" definieren. Schau dir dazu mal die Bascom-Hilfe zu "Dim" an.

Hessibaby
14.08.2007, 11:42
Beide Bytes addieren und die 4 oberen vom MSB subtraieren.
Alternativ das LSB in Nibbel zerlegen und mit dem unteren Nibble des MSB addieren.