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 GeKue - 11.06.2011 22:28)
 Als Antwort auf IIC DEVICE SEEK nicht auf LCD sondern auf Hyperterminal von Gerd - 11.06.2011 10:11
GeKue nutzt:  Open-Mini, Open-Midi, Open-Macro
Hallo Gerd,

so richtig blicke ich nicht durch, was Du machst...
Ein funktionierendes Programm zum Aufsuchen intakter I2C-Bauteile an einer OM findest Du unter "Dokumentation" in dem Rolladenprojekt-Hauptprogramm (Untermenue: Testen der I2C-Bausteine;Gibt aus, welche der I2C-Bausteine gefunden wurden) - Dies Teilprogramm stammt letztendlich aber nicht von mir - ich weiß aber nicht mehr, wer es zuerst (und wo) in's Netz gestellt hat.

Viel Spaß beim Testen,
Gruß, GeKue



> Hallo Leute!
>
> Ich bin Neuling und habe folgendes Problem. Ich nutze die Porterweiterung PCF8574 mit 2,2k Pullup an SDA und SCL am IIC jedoch schaltet der nicht! Nun wollte ich erstmal überprüfen, ob der IIC überhaupt arbeitet und habe mir das IIC_DEVICE_SEEK rausgesucht. Jedoch habe ich leider kein LCD und würde gerne die LCD-Ausgabe auf das Hyperterminal am PC ausgeben. Jedoch weiß ich nicht was ich im folgenden Programm änderen muß, damit das Funzt. Ich habe da schon Stundenlang rumgefummelt. Kann mir jemand helfen? Gruß Gerd
>
> '--------------------------
> '------ 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: