Hallo,
als erstes musst du die lcdportdef.h anpassen. Du musst halt die Ports, Pins usw so eintragen wie es bei dir der Fall ist. Wenn du also Bit 0 (Datenleitung4)an PB0 angeschlossen hast,
#define LCD_DATA0_PORT PORTB /**< port for 4bit data bit 0 */
#define LCD_DATA0_DDR DDRB /**< port direction for 4bit data bit 0 */
#define LCD_DATA0_PINS PINB /**< port for 4bit data bit 0 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
Wobei ich gerade sehe das du diesen Teil
Code:
#define LCD_BRIGHTNESS_PORT PORTB /**< port for Brightness */
#define LCD_BRIGHTNESS_DDR DDRB /**< port direction for Brightness */
#define LCD_BRIGHTNESS_PIN PB4 /**< pin for Brightness */
#define LCD_CONTRAST_PORT PORTB /**< port for CONTRAST */
#define LCD_CONTRAST_DDR DDRB /**< port direction for CONTRAST */
#define LCD_CONTRAST_PIN PB5 /**< Pin for CONTRAST */
#define LCD_ON_PORT PORTC
#define LCD_ON_DDR DDRC
#define LCD_ON_PIN 6
aus der Datei löschen kannst.
Am besten du erzeugst dir dann noch eine lcd.h in der die benötigten Funktionen deklariert werden.
Code:
void InitLCD ();
void WriteData (uint8_t , uint8_t);
Jetzt schreibst du ein kleines Programm
Code:
...
#include "lcd.h"
#include "global.h"
int main (void){
InitLCD ();
while (1) {}
return 0;
}
Jetzt muss das Display nach dem Einschalten leer sein.
Es dürfen nicht mehr die Balken da sein! Vorher brauchst du nichts weiter probieren.
Wenn das soweit geht, fügst du ein
WriteData (0,65);
hinter InitLCD(); ein. Dann sollte nach dem Einschalten ein A zu erkennen sein.
Funktionen wie z.B. PrintString, PrintChar, werden hierfür nicht benötigt. Die kannst du dann ja später ergründen.
Noch etwas, wenn du den Controller geflasht hast, ziehe für die ersten Versuche den ISP ab und schalte die Versorgung aus und wieder ein.
Nicht das es da zu Konflikten kommt.
Gruß
Jens
Lesezeichen