-
-
rnrelais über I²C-Bus in C nsprechen
Hi!
Bin n ziemlicher Neuling was Robotik angeht...
Wie kann ich in C meinem Relaisboard, das ich über I²C-Bus am Control-Board (mit ATMega32) angeschlossen hab, sagen, es soll n bestimmtes Relais durchschalten...?
Bin echt m verzweifeln, weil ich aus den C-Beispielen zum I²C-Bus einfach nicht schlau werd...
Danke schon mal im voraus!
-
Erfahrener Benutzer
Robotik Einstein
du lädst dir bei www.jump.to/fleury die I2C lib runter, bindest sie laut Anleitung in dein Programm ein, und setzt dann mit den Befehlen
i2c_start(adresse+I2C_WRITE);
i2c_write(byte);
i2c_stop();
die Ausgänge am Relaisborad mit der Adresse adresse auf dem Wert, der in byte steht.
-
...genau das hab ich gemacht...
Hab das Byte als HEXA-Dezimalzhl geschrieben...
genauso wie die adresse...
Die lib hab ich eingebunden...
keine Fehlermeldung beim compilen...
Und jetzt steh ich am schlauch...
Ich tüftel noch mal n bisschen rum...
-
Erfahrener Benutzer
Robotik Einstein
wie sitzen die Jumper für die Adresse?
i2c_init(); gemacht?
benutzt du twimaster.c oder i2cmaster.S ?
-
Jumper sitzen auf Standard, wie in der Dokumentation und die gleiche Adresse is im Prog angegeben.
i2c_init(); hab ich auch vorher.
Benutze i2cmster.S
-
Erfahrener Benutzer
Robotik Einstein
Zitat von
flogge
Benutze i2cmster.S
Dann musst du in der i2cmaster.S noch angeben, an welchen Pins du den I2C-Bus angeschlossen hast. Ich würde dir aber die twimaster.c empfehlen, damit wird nämlich die Hardware-I2C Schnittstelle benutzt. Die läuft schneller als die Softwareemulation mit der i2cmaster.S
-
In der Dokumentation steht, dass die SDA-Leitung PC1, die SCL-Leitung PC0 ist.
Habs jetzt folgendermaßen angegeben:
#define SDA 1
#define SCL 0
#define SDA_PORT PORTC
#define SCL_PORT PORTC
...Läuft noch immer nix...
Wenn ich twimaster und die zugehörige makefile (Deiteinamen etc wie gewohnt editiert) verwende bekomm ich ne Fehlermeldung...
-
Erfahrener Benutzer
Robotik Einstein
das makefile dazu brauchst du nicht.
In dem Ordner, in dem deine Haupt-.c-Datei liegt, packst du die i2cmaster.h und die twimaster.c. Dann #include i2cmaster.h, und es sollte laufen...
Fehlermeldung?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen