From: Ralf K. <ral...@gm...> - 2021-01-26 00:17:35
|
Hallo, ich verwende als Hardware einen Raspberry Pi B+, ich habe einen tams DCC Booster an die Serielle angeschlossen. Ich habe auch Interesse an der Interpretation des ACK-Signals vom Programmiergleis. Ich würde auch gerne Rückmeldekontakte anschließen. Anstatt dem s88-Bus würde ich gerne i2c verwenden. Ich möchte dazu gerne einen Maple Mini per i2c an den Raspi anschliessen. An den Maple Mini kann ich dann die Rückmeldekontakte direkt anschliessen oder über einen Bus oder ähnliches. Ich habe ein Testprogramm geschrieben, damit ich es kompilieren kann muss ich beim gcc "-li2c" anhängen gcc -o i2ctest i2ctest.c -li2c Nun weiß ich aber nicht wo ich das -li2c eintragen muß damit es beim kompilieren verwendet wird. Der Einfachheit halber möchte ich die i2c Routinen erstmal in die ddl-s88.c einbauen i2ctest.c #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/i2c-dev.h> #include <i2c/smbus.h> #define addr 4 #define anz 5 int main() { int file; __s32 res; char filename[20] = "/dev/i2c-1"; printf("i2ctest\n"); file = open(filename, O_RDWR); if (file < 0) { printf("error open i2c\n"); exit(1); } if (ioctl(file, I2C_SLAVE, addr) < 0) { printf("error addr i2c\n"); exit(1); } res = i2c_smbus_write_byte(file, 30); for (unsigned int n = 0; n <= anz; n++) { res = i2c_smbus_read_byte(file); if (res >= 0) { printf("ret: %ld\n", res); } } return 0; } Gruß Ralf |