franzlst
16.02.2007, 20:47
Moin,
ich habe am RN-Mega128Funk das RN-KeyLCD angeschlossen (als einziges Modul an den I2C Ausgängen).
Bereits vor ein paar Wochen habe ich Funktionen zur Ansteuerung geschrieben. Als I2C Bibliothek nutze ich diese: http://homepage.hispeed.ch/peterfleury/avr-software.html#libs
Meine Funktionen haben auch die ganze Zeit funktioniert, jetzt passt aber etwas nicht mehr, obwohl ich keine Änderung vorgenommen habe. Und zwar kann ich die Kommunikation starten (i2c_start(...)), dann zB Zeichen übermitteln (beliebig viele, i2c_write(...)) und die Kommunikation auch wieder beenden (it2_stop()), was auch wunderbar funktioniert. Nur ein neues Starten der Kommunikation (zB durch Aufruf der geanau gleichen Funktion) geht nicht mehr, an der Anzeige tut sich nichts.
Folgender Quelltext:
Programm:
#include "funktionen.c"
int main()
{
wait(1500);
i2c_init();
display_print_char('a');
display_print_char('b');
}
Ausschnitt aus funktionen.c:
void display_print_char(uint8_t zeichen)
{
i2c_start(DISPLAY + I2C_WRITE);
i2c_write(zeichen);
i2c_stop();
}
Es kommt nur zur Ausgabe 'a', das 'b' wird nicht mehr gezeigt.
Das ganze hat wie gesagt bereits funktioniert, jetzt aber nicht mehr. Weiß jemand Rat?
Danke
ich habe am RN-Mega128Funk das RN-KeyLCD angeschlossen (als einziges Modul an den I2C Ausgängen).
Bereits vor ein paar Wochen habe ich Funktionen zur Ansteuerung geschrieben. Als I2C Bibliothek nutze ich diese: http://homepage.hispeed.ch/peterfleury/avr-software.html#libs
Meine Funktionen haben auch die ganze Zeit funktioniert, jetzt passt aber etwas nicht mehr, obwohl ich keine Änderung vorgenommen habe. Und zwar kann ich die Kommunikation starten (i2c_start(...)), dann zB Zeichen übermitteln (beliebig viele, i2c_write(...)) und die Kommunikation auch wieder beenden (it2_stop()), was auch wunderbar funktioniert. Nur ein neues Starten der Kommunikation (zB durch Aufruf der geanau gleichen Funktion) geht nicht mehr, an der Anzeige tut sich nichts.
Folgender Quelltext:
Programm:
#include "funktionen.c"
int main()
{
wait(1500);
i2c_init();
display_print_char('a');
display_print_char('b');
}
Ausschnitt aus funktionen.c:
void display_print_char(uint8_t zeichen)
{
i2c_start(DISPLAY + I2C_WRITE);
i2c_write(zeichen);
i2c_stop();
}
Es kommt nur zur Ausgabe 'a', das 'b' wird nicht mehr gezeigt.
Das ganze hat wie gesagt bereits funktioniert, jetzt aber nicht mehr. Weiß jemand Rat?
Danke