Hallo,

also der DA-Wandler läuft. War mein Fehler. Habe die falsche Slave Adresse verwendet.

Hier mal mein Testprogramm:
Code:
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
Config I2cdelay = 10


'SDA und SCL definieren
Config Sda = Portc.1
Config Scl = Portc.0



Const Max5812wr = 36                                       'Max5812 Write Adress
Const Max5812rd = 37                                       'Max5812 Read Adress
Const Power_up = 64                                         'Power UP

Dim Wert As Byte


'---- schreibe in Max5812M ----

Do

Input "Wert für DA (0 - 255):" , Wert


I2cstart                                                    'Start I2C
   I2cwbyte Max5812wr                                       'Adresse Slave
   I2cwbyte Power_up                                        'Power_Up Device
   I2cwbyte &B11001100                                      '4bit Befehl und 4bit wert
   I2cwbyte Wert
I2cstop

   Wait 1                                                   'warten

Print "Wert" ; B
Print "Error : " ; Err                                      'show error

Loop

End
Jetzt habe ich nur noch ein Problem. Ich möchte gern eine Zahl von 0 bis 4095 eingeben und der DA-Wandler soll dann den entsprechenden Wert ausgeben.

Aber ich muss den Wert ja verteilt auf zweimal senden. Einmal die oberen 4bit und anschließend die unteren 8Bit. Wie kann ich die Word Variable teilen um es in zwei Byte Variablen umzuwandeln.

habe mir überlegt das ich die Teilung mit Hilfe einer Schleife und eines Strings mache. Aber wie kann ich den zerteilten String wieder zusammenfügen. Weil durch die Schleife habe ich ja dann 12 einzelne Wert. Ich brauche aber 4 und 8 bit Zahlen.

oder gibt es andere Möglichkeiten?

thx Arno