
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Gerd, mir ist nicht klar, welche CControl Du verwendest. Wenn ich mir aber das von Dir genannte Programm anschaue, dann handelt es sich im Ursprung um ein Demo "IIC_Device_Seek.bas" für die CControl 1 V2.0, geschrieben in CCBASIC2.0. Ich gehe davon aus, dass Du dann keine Open-Micro oder ähnliches verwendest. Also ich habe das Originalprogramm von der Conrad Internet-Seite (entspricht genau Deinem von Dir genannten Programm) so abgeändert, dass die Umleitungen auf das LCD der CControl 1 V2.0 (z.B. Station) auskommentiert sind und demnach die Ausgaben auf die serielle Schnittstelle laufen. Andere Umleitungen (auf I2C-Bus oder Config-Modul) sind erhalten, damit das Programm funktioniert. Wie gesagt, das Programm wird nur auf einer CControl 1 V2.0 bzw. V1.2 sinnvoll laufen. Auf der CControl1.1 geht es nicht und auf einer OM wird es meiner Meinung nach auch nicht funktionieren. Außerdem mußt Du das Programm mit CCBASIC2.0 übersetzen. Falls Du eine andere CControl benutzt, musst Du Dir andere Programme suchen, um den I2C-Bus auszutesten (siehe Kommentar von GeKue)... Beste Grüsse, MaPi 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'IIIIIII DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0 (by DIE HARD) IIIII 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII '-------------------------------------------------------------------- ' Beispiel zum BASIC-COMPUTER mit dem Programmer/Application-Board '-------------------------------------------------------------------- ' ANWENDUNG: IIC-BUS NACH ANGESCHLOSSENEN GERÄTEN SUCHEN ' '-------------------------------------------------------------------- ' Ein kleines Tool um alle am IIC-Bus angeschossenen Bausteine zu ' suchen ( wenn z.B. die Adresse nicht genau bekannt ist. ' Das Programm frägt alle WRITE-Adressen im Adressraum ab und meldet ' gefundene Bausteine mit Adresse (dezimal u. binär) '----------------------------------------------------------------------- '-------------------------- '------ I/O PORTS --------- '-------------------------- define LIGHT port[16] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define CONFIG byte[1] define COUNTER byte[2] #INIT LIGHT=off '----------- EINSCHALT MELDUNG------------------------ 'print"#ON_LCD#"; 'print"#INIT#"; print"IIC-DEVICE SEEK"; pause 50 'print"#CLR#"; 'print"#OFF#"; '--- IIC ERROR FLAG IM CONFIG REGISTER LÖSCHEN ------ print"#ON_CONFIG#"; 'UMLEITUNG ZUM CONFIG MODULE get CONFIG 'CONFIG REGISTER LESEN put (CONFIG and &B10111111)'IIC ERROR FLAG IN CONFIG LÖSCHEN print"#OFF#"; '----------------------------------------------------- '-- SUCHE NACH IIC-EINHEITEN MIT ADRESSE xxxxxxx0 ---- '----------------------------------------------------- #LOOP '-------- ADRESSEN DURCHZÄHLEN ---------------------- for COUNTER=0 to 254 step 2 print"#ON_IIC#"; 'UPLEITUNG ZUM IIC-MODULE print"#START#"; 'START BEDINGUNG put COUNTER 'ADRESSE SENDEN print "#STOP#"; 'STOP BEDINGUNG print"#OFF#"; 'UMLEITUNG ABSCHALTEN '----------------------------------------------------- 'CONFIG REGISTER ABFRAGE OB DEVICE ACKN GESENDET HAT-- '----------------------------------------------------- print"#ON_CONFIG#"; 'UMLEITUNG ZUM CONFIG MODULE get CONFIG 'CONFIG REGISTER LESEN put (CONFIG and &B10111111)'IIC ERROR FLAG IN CONFIG LÖSCHEN print"#OFF#"; '----------------------------------------------------- ' LAUFENDE ADRESSEN AUSGABE AUF LCD -- '----------------------------------------------------- 'print"#ON_LCD#"; 'print"#L101#"; print"SEEK AT: "; print COUNTER; if (CONFIG and &H40)=0 then gosub FOUND 'print"#OFF#"; next end '----------------------------------------------------- ' GEFUNDENE ADRESSEN AUSGABE AUF LCD -- '----------------------------------------------------- #FOUND 'print"#L201#"; print"OK: "; if (COUNTER and &H80)=0 then print "0"; else print "1"; if (COUNTER and &H40)=0 then print "0"; else print "1"; if (COUNTER and &H20)=0 then print "0"; else print "1"; if (COUNTER and &H10)=0 then print "0"; else print "1"; if (COUNTER and &H08)=0 then print "0"; else print "1"; if (COUNTER and &H04)=0 then print "0"; else print "1"; if (COUNTER and &H02)=0 then print "0"; else print "1"; if (COUNTER and &H01)=0 then print "0"; else print "1"; print"="; print COUNTER; pause 100 'print"#L201#"; print" "; return |
| Antwort schreiben |