PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I²C mit CC1



ACU
08.01.2004, 16:37
Hallo!
Kennt sich jemand mit dem Thema I²C an der C-Control 1 aus?
Ich habe dieses Programm im Internet gefunden:

' --- Definitionen --------------------

define SDA port[9]
define SCL port[10]
define Daten byte 'Paramter der "übergeben" wird

define N Word

' --- Programmoperationen -------------

SDA = ON
SCL = ON


#Start
SDA = OFF
SCL = OFF
return

#Stop
SDA = OFF
SCL = ON
SDA = ON
return

#I2C_WRITE
for N = 1 to 8
SDA= OFF
if (Daten AND 128) = 128 then SDA = ON
pulse SCL
Daten = Daten shl 1 '1 Bit nach links
next
pulse SCL ' 9. Impuls
return

#I2C_Read
Daten = 0
deact SDA ' SDA = Eingang
for N = 1 to 8
Daten = Daten shl 1 '1 Bit nach links
SCL = ON
if SDA then Daten = Daten + 1
SCL = OFF
next
return

#Ack
SDA = 0
pulse SCL
return

#NoAck
SDA = 1
pulse SCL
return
end
Leider habe ich keine Ahnung, wie ich jetzt was senden kann oder was empfangen.
Wäre cool, wenn mir jemand helfen kann!

THX im Vorraus

08.01.2004, 16:52
Hast du schon mal das Beispiel unter Download ausprobiert?

ACU
08.01.2004, 17:03
Ich habe es mir gerade runtergeladen.
Leider C-Control IDE die Datei I2C.OBJ, obwohl sie im selben Ordner ist.
Leider ist keine Beschreibung mit in dem Paket, wie man es genau benutzt.

thille
08.01.2004, 20:06
Leider C-Control IDE die Datei I2C.OBJ, obwohl sie im selben Ordner ist.


Mach mal bitte einen Satz daraus, das verstehe ich nicht.

Gruß

Torsten

Starbearer
08.01.2004, 20:16
Einen Tip vorneweg:
Einen genauen, ausführlichen Überblick über die Verwendung des I²C-Buses mit der C-Control verschafft das Buch "MSR mit dem C-Control Basic System" von Burkhard Kainka.
http://www.the-starbearer.de/Bilder/Buchtitel/msrmitcc.jpg

Ich hab auf meiner Homepage ebenfalls mal einiges dazu geschrieben....
I²C an der CC1 (http://www.the-starbearer.de/Praxis/Microkontrollerpraxis/ccontrol/CControl-I%B2C.htm)

Zu deinem Programm fällt mir auf, das im CC-Code die i2c.obj nicht mit syscode "i2c.obj" eingebunden ist? Das brauchst Du aber auch so gar nicht, da Du den I²C-Bus laut Definition im Programm ja an 2 IOs der CC simulieren willst. Im Grunde hast Du nun alle nötigen Routinen zur Kommunikation mit I2C-"Geräten", musst nun mal in den Datenblättern nachlesen wie man die einzelnen I2C-Bausteine adressiert um ihnen zum Beispiel Daten zu entlocken oder sie anzusteuern, hängt stark davon ab was am Bus hängt...

ACU
08.01.2004, 20:32
@thille
Ok hast Recht ist wirklich kein Satz ;-)
Habe ich auf die Schnelle nicht aufgepasst :(. Soll nicht wieder vorkommen.
Also in dem Downloadpaket, dass man für die C-Control 1 hier runterladen kann, befindet sich eine Datei mit dem Namen I2C.OBJ.
Sobald man aber die BAS Datei übertragen will, meldet IDE einen Fehler an der Stelle:
syscode "I2C.OBJ". Angeblich wurde die Datei nicht gefunden, obwohl sie im selben Ordner ist.

Soll ich nun lieber die reinkopierte Routine oder die aus dem Downloadpaket benutzen?

Mal sehen vielleicht kaufe ich mir das Buch ja.

Frank
08.01.2004, 20:50
Also ich hab die im Download Bereich eingesetzte Routine schon oft benutzt. Hatte damit noch nie Probleme. Die Basic I2C Routinen in Deinem Beitrag sind oft zu langsam.
Kann mir die Fehlermeldung bei Dir allerdings momentan auch nicht erklären. Stimmt OBJ-Name und SYSCODE Anweisung am Ende wirklich korrekt überein?
Bedenke auch das das Beispiel nur funktioniert wenn Du den PCF Baustein besitzt. Allerdings dürfte diese Fehlermeldung nicht kommen wenn du beides im gleichen Verzeichnis abgelegt hast. Du kannst aber mal den vollen Pfad bei der Syscode-Anweisung angeben, vielleicht stimmt irgendwas mit dem Arbeitsverzeichnis nicht.

Gruß Frank