
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Matthias > Gesendet werden zuerst die Adresse(80) - dann der Kanal(0-3) und zuletzt der Wert (0-255). Define i Byte wird in der Include Datei benötigt. > ------------------------------------------------------------------------- > > define SCL port[5] ’clk Leitung Definieren > define SDA port [6] ’Daten Leitung Definieren > define i byte > define DATA byte > > 'restet Max520 > > i2c_init:i2c_start : i2c_write 80 : i2c_write 0 : i2c_write 0 : i2c_stop > i2c_init:i2c_start : i2c_write 80 : i2c_write 1 : i2c_write 0 : i2c_stop > i2c_init:i2c_start : i2c_write 80 : i2c_write 2 : i2c_write 0 : i2c_stop > i2c_init:i2c_start : i2c_write 80 : i2c_write 3 : i2c_write 0 : i2c_stop > > #c1up > if DATA=255 then c1down > i2c_init:i2c_start : i2c_write 80 : i2c_write 0 : i2c_write DATA > DATA=DATA+1 : i2c_stop > goto c1up > > > #c1down > if DATA=0 then c1up > i2c_init : i2c_start : i2c_write 80 : i2c_write 0 : i2c_write DATA > DATA=DATA-1 : i2c_stop > goto c1down > > include "om_i2c.bas" > > -------------------------------------------------------------------------------------------- Du brauchst den I2C-Bus nur einmal, zum Anfang, Initialisieren. Alle anderen "i2c_init" kannst Du entfernen. Wenn Du etwas experimentieren möchtest, ich habe bei mir die "i2c:init" etwas geändert: #i2c_init deact sda ' SDA Port deaktivieren wait sda ' wartet bis SDA High ist gosub i2c_start ' wenn SDA High, dann Start-Signal senden gosub i2c_stop ' Stop-Signal senden pause 3 ' 60 Milisekunden Pause return Das ist zwar "technisch" nicht korrekt, funktioniert aber bei all meinen Programmen. Dadurch kannst Du das Byte "i" einsparen und für andere Dinge verwenden. LG Jens |
| Antwort schreiben |