brundle
11.05.2005, 11:16
Hallo,
hier ein Test-Programm für die Kombination:
RN-CONTROL v 1.4 mit 16 MHz //oder andere Boards
und
RN-KEY-LCD
Kommunikation über I2C bzw. TWI
In der Datei rnkeylcd.c muss die I2C-Slave Addresse angepasst werden:
#define rnkeylcd 0x40 // I2C-Slave Addresse HEX:40
HEX40 ist standart beim RN-KEYLCD Board,
nicht vergessen von RS232 auf I2C Mode umzustellen.
Ich habe die Sourcen von Peter Fleury (http://jump.to/fleury) benutzt:
i2cmaster.h : -nicht verändert-
twimaster.c : -nicht verändert-
i2cmaster.S : -verändert-
Änderungen in i2cmaster.S:
für RN-Control mit 16MHz Quarz:
SCA und SCL port
für ATMEGA32 angepasst
I2C-DELAY für 16 MHz erhöht
TODO:
In der i2cmaster.S habe ich den Delay deutlich erhöhen müssen,
damit die Tastatur vernünftig ausgelesen werden kann.
Da ich kein Assembler-Papst bin soll sich das mal jemand anschauen
und überprüfen.
known Bugs:
die Tastaturabfrage wird nicht immer korrekt ausgelesen, deshalb
die do-while Schleife
do{
.
.
.
}while(!(c=='1' || c=='2' || c=='3' || c=='4' || c=='5' || c=='6' || c=='7' || c=='8' || c=='9' || c=='0' || c=='*' || c=='#'));
in der Funktion Read_Key, damit kein Müll gesendet wird.
Q: Liegt das am Timing (Delay in der i2cmaster.S) oder an TWBR, oder an ... ?
A: bitte im Forum Posten wenn jemand einen Hinweis hat, Danke :-)
Q:Was macht das Programm?
A:Das Programm zeigt die Funktionen des RN-Key-LCD zusammen mit dem
RN-Control-Board über i2c. Die Funktionen befinden sich in rnkeylcd.c.
Die Funktionen: LCD-clear, Licht an/aus, LF+CR, x_y-Positionierung...
eine printanweisung fprint zum Schreiben auf dem LCD
und eine Routine zur Tastaturabfrage
In der Endlosschleife:
Das Programm liest von der 3x4 Matrix-Tastatur und gibt das Zeichen
sofort auf das LCD-Display aus.
Viel Spaß beim Testen und Ausprobieren.
Verbesserungsvorschläge sind wilkommen;bitte im Forum posten, Danke
Der Code kann aus dem Download-Bereich herunterladen werden.
Foren-Übersicht -> Download Database -> Codeschnipsel / Quellcode -> Code für Atmel AVR`s (z.B. Mega 8 / 16 / 32 usw.) -> AVR-C Programmcode
https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=31
hier ein Test-Programm für die Kombination:
RN-CONTROL v 1.4 mit 16 MHz //oder andere Boards
und
RN-KEY-LCD
Kommunikation über I2C bzw. TWI
In der Datei rnkeylcd.c muss die I2C-Slave Addresse angepasst werden:
#define rnkeylcd 0x40 // I2C-Slave Addresse HEX:40
HEX40 ist standart beim RN-KEYLCD Board,
nicht vergessen von RS232 auf I2C Mode umzustellen.
Ich habe die Sourcen von Peter Fleury (http://jump.to/fleury) benutzt:
i2cmaster.h : -nicht verändert-
twimaster.c : -nicht verändert-
i2cmaster.S : -verändert-
Änderungen in i2cmaster.S:
für RN-Control mit 16MHz Quarz:
SCA und SCL port
für ATMEGA32 angepasst
I2C-DELAY für 16 MHz erhöht
TODO:
In der i2cmaster.S habe ich den Delay deutlich erhöhen müssen,
damit die Tastatur vernünftig ausgelesen werden kann.
Da ich kein Assembler-Papst bin soll sich das mal jemand anschauen
und überprüfen.
known Bugs:
die Tastaturabfrage wird nicht immer korrekt ausgelesen, deshalb
die do-while Schleife
do{
.
.
.
}while(!(c=='1' || c=='2' || c=='3' || c=='4' || c=='5' || c=='6' || c=='7' || c=='8' || c=='9' || c=='0' || c=='*' || c=='#'));
in der Funktion Read_Key, damit kein Müll gesendet wird.
Q: Liegt das am Timing (Delay in der i2cmaster.S) oder an TWBR, oder an ... ?
A: bitte im Forum Posten wenn jemand einen Hinweis hat, Danke :-)
Q:Was macht das Programm?
A:Das Programm zeigt die Funktionen des RN-Key-LCD zusammen mit dem
RN-Control-Board über i2c. Die Funktionen befinden sich in rnkeylcd.c.
Die Funktionen: LCD-clear, Licht an/aus, LF+CR, x_y-Positionierung...
eine printanweisung fprint zum Schreiben auf dem LCD
und eine Routine zur Tastaturabfrage
In der Endlosschleife:
Das Programm liest von der 3x4 Matrix-Tastatur und gibt das Zeichen
sofort auf das LCD-Display aus.
Viel Spaß beim Testen und Ausprobieren.
Verbesserungsvorschläge sind wilkommen;bitte im Forum posten, Danke
Der Code kann aus dem Download-Bereich herunterladen werden.
Foren-Übersicht -> Download Database -> Codeschnipsel / Quellcode -> Code für Atmel AVR`s (z.B. Mega 8 / 16 / 32 usw.) -> AVR-C Programmcode
https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=31