Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: IIC DEVICE SEEK nicht auf LCD sondern auf Hyperterminal Kategorie: Programmierung Basic (von MaPi - 12.06.2011 22:01)
 Als Antwort auf IIC DEVICE SEEK nicht auf LCD sondern auf Hyperterminal von Gerd - 11.06.2011 10:11
MaPi nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, CC1-Station V1.1, C-Control 2
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

Bisherige Antworten: