HI ich habe auch so ein änliches Problem.
ist es von der Programierung eigentlich anders wenn man LC Dyspla über I2C bus anschließt????
sorry das das ich dein Frage nicht antworten kann.
Danke
Ich habe es endlich geschaft das LCD von Conrad für die C-Control 1 M2.0 mit Basic++ zu programmieren. Aber nur mit geteilter freude
Wenn ich das programm übertragen habe (schalte Betriebsspannung ab) stecke das LCD an den controler (schalte Spannung wieder an) und betätige den Start-Eingang. Aber nur manchmal (zufall) zeigt das LCD was an.
Ausserdem kann ich keine vernümpftige Anwendung programmieren.
(Wie zubeispiel mit IF)
Kann es sein dass die C-contol jenach dem wie schnell sie wieder eingeschalten wird das LCD falsch initialiesiert.
Ich habe halt von programmieren nicht viel ahnung, von elektronik schon. Oder ich werde den LCD umbauen und direkt an den controller anschliessen, aber somit muss ich 8 PORTs einbüssen.
Hier ein Beispiel:
define SDA port[9]
define SCL port[10]
import "....\LIB\ASCII_TABLE.BAS"
import "....\LIB\IIC_LCD_DRIVE.BAS"
SDA=on
SCL=on
pause 2
LCD_INIT()
pause 2
LINE1(4)
LCD_WRITE(20h,U)
LCD_WRITE(20h,N)
LCD_WRITE(20h,I)
LCD_WRITE(20h,T)
LCD_WRITE(20h,BLANK)
LCD_WRITE(20h,M)
END
HI ich habe auch so ein änliches Problem.
ist es von der Programierung eigentlich anders wenn man LC Dyspla über I2C bus anschließt????
sorry das das ich dein Frage nicht antworten kann.
Danke
Hallo,
das Problem hatte ich auch...
habe am IIC-Bus ein ext. Terminal angeschlossen ( Eigenbau mit LP von CC-Tools ) und ebenfalls mal gehts, mal nicht...
Ich denke, das Prob liegt am IIC-Bus, denn seit ich mein Terminal über den Buspuffer P82B715 angeschlossen habe, ist dieser Fehler nicht mehr aufgetreten.
Zur Fehlersuche ( zugegeben, aufwendig ):
PCF 8574 mit adr 10 mit Leds bestückt statt LCD anschliessen, und versuchen den Datenverkehr nachzuvollziehen, dazu pausenbefehle in die lib einfügen damit man auch was sieht![]()
Vlt. hilft auch, einfach externe Pullups an SDA und SCL anzuschliessen ( etwa um 4K7 oder bis min. 1k ) - mal probieren
MfG Lutz
@221: Das Betriebssystem unterstützt ein LCD am BytePort2 direkt, damit lassen sich Text und Zahlen easy ausgeben, über IIC-Bus muss man sich das selbst zusammenfrickeln, siehe Prog-Auszug von Skynet. -umständlicher, und ziemlich speicherfressend ( zumindest bei mir, bin noch am basteln, tabellen in ein ext. EEPROM abzulegen und auszulesen ).
Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.
Ohne Pullups sollte der I2C-Bus garnicht funktionieren.Vlt. hilft auch, einfach externe Pullups an SDA und SCL anzuschliessen ( etwa um 4K7 oder bis min. 1k ) - mal probieren
Unter http://www.c-control-support.net/ gibt es fertige Programmdemos.
mfg
Stefan
Ja, Du brauchst unbedingt Pullup-Widerstände an SCL und SDA (Port 9 und Port 10)
Du kannst aber auch die integrierte Pullups für den byteport2 aktivieren.
Siehe Config-Objekt: http://www.csslabs.de/ccontrol/help/config.html
Das müsste ebenfalls funktionieren, wenn die Kabelverbindung nicht zu lange ist.Code:FUNCTION PULLUP2_ENABLE() define TEMPVAL as byte CONFIG.INIT CONFIG.GET TEMPVAL 'den aktuellen Wert lesen CONFIG.PUT (TEMPVAL or 00010000b) 'Bit setzten und zurück schreiben CONFIG.OFF END FUNCTION
Hi,
Intere Pullups aktiviert hatte ich stillschweigend vorausgesetzt...
LG Lutz
Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.
naja die internen pullups reichen oft nicht.
ich benutze eigentlich immer externe.
mach mal die wartezeit größer nach dem I²C bus initialisieren,
dann eine wartezeit einfügen nach LCD.init
wenns nicht funkt bau dir das programm mit manueller ansteuerung mal um (einfach statt das die ausgänge auf ein Byteport verweisen auf einen PCF verweisen.
das programm findest du unter https://www.roboternetz.de/wissen/in...ntrol_M-Unit_2
gruß Michi
http://amiwerewolf.am.funpic.de
Lieber ne Schwester im Puff als nen Bruder mit nem Opel!
Lesezeichen