Anag Vision gibt keine Zeichen aus

OP #2780146
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe ein STM32F4-Discovery Board, und ein Anag Vision AV1624.

Damit habe ich das Tutorial auf Mikrocontroller.net durchgearbeitet und 
an den STM angepasst, und das initialisieren funktioniert auch 
wunderbar. Ich kann auch alle Funktionen nutzen, wie Cursor ein- und 
ausschalten, oder Display ein- und ausschalten. Nur kann ich keine 
Zeichen ausgeben.

Wenn ich z. B. die im Tutorial beschriebene Funktion lcd_data('T') 
aufrufen will, verändert sich nur die Position des Cursors (2. Zeile, 2. 
Spalte).

Ich habe auch schon nachgemessen, ob alle Daten so ankommen, wie sie 
sollen, demnach kann es doch kein Kabelbruch, oder 'ne schlechte 
Lötstelle sein, oder?

Ich häng euch mal meine Dateien an, die ich geschrieben/aus dem Tutorial 
kopiert habe.


Könnt ihr mir helfen? Selbst über die Info, dass das LCD defekt sein 
könnte wär ich froh.

Vielen Dank schonmal und
freundliche Grüße
Bastian



Ausschnitt lcd_routines.c
1
void lcd_init()
2
{
3
  GPIO_InitTypeDef GPIO_InitStructure;
4

5
  // Voreinstellungen
6
  GPIO_InitStructure.GPIO_Pin = LCD_RS | LCD_EN | GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
7
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
8
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
9
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
10
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
11
  GPIO_Init(LCD_PORT, &GPIO_InitStructure);
12
  time_init();
13

14
  // Alle Ausgänge auf Null setzen
15
  GPIO_ResetBits(LCD_PORT, LCD_RS | LCD_EN | GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
16

17
  // warten auf Bereitschaft des LCD
18
  _delay_1ms(LCD_BOOTUP_MS);
19

20
  //Soft-Reset muss 3mal hintereinander gesendet werden zur Initialisierung
21
  lcd_out(LCD_SOFT_RESET);
22
  _delay_10us(LCD_SOFT_RESET_10US1);
23

24
  lcd_enable();
25
  _delay_1ms(LCD_SOFT_RESET_10US2);
26

27
  lcd_enable();
28
  _delay_10us(LCD_SOFT_RESET_10US1);
29

30

31
  // 4-bit Modus aktivieren
32
  lcd_out(LCD_SET_FUNCTION | LCD_FUNCTION_4BIT);
33
  _delay_1ms(LCD_SET_4BITMODE_MS);
34

35

36

37
  // 4-bit Modus / 2 Zeilen / 5x7 Font
38
  lcd_command(LCD_SET_FUNCTION | LCD_FUNCTION_4BIT | LCD_FUNCTION_2LINE | LCD_FUNCTION_5X7);  // LCD_FUNCTION_2LINE
39

40
  // Display ein /Cursor aus / Blinken an
41
    lcd_command(LCD_SET_DISPLAY | LCD_DISPLAY_ON | LCD_CURSOR_OFF | LCD_BLINKING_ON);    // LCD_DISPLAY_ON
42

43
    // Display clear
44
    lcd_command(0x01);
45

46
    // Cursor inkrement / kein Scrollen
47
    lcd_command(LCD_SET_ENTRY | LCD_ENTRY_INCREASE | LCD_ENTRY_NOSHIFT);
48

49
    //lcd_clear();
50

51
    _delay_10us(LCD_COMMAND_10US);
52
}
53

54
void lcd_data( uint8_t data )
55
{
56
    GPIO_SetBits(LCD_PORT, LCD_RS);    // RS auf 1 setzen
57

58
    lcd_out( data );            // zuerst die oberen,
59
    lcd_out( data<<4 );         // dann die unteren 4 Bit senden
60

61
    _delay_10us( LCD_WRITEDATA_10US );
62
}
63

64
static void lcd_out(uint8_t data)
65
{
66
  data &= 0xF0;    //obere 4 Bit
67
  GPIO_Write(LCD_PORT, (data>>4));
68
  lcd_enable();
69
}


Ausschnitt main.c
1
int main(void)
2
{
3
    /* ... */
4
    lcd_init();
5
    _delay_1ms(50);
6
    lcd_data('A');
7
    /* ... */
8
}
Angehängte Dateien:
OP #2780522
Lesenswert?
• ▲
▼
Hallo zusammen,

ich wollte nur kurz nochmal Bescheid geben, dass sich das Thema erledigt 
hat. Habe den Fehler gefunden. Hab dummerweise immer zum falschen 
Zeitpunkt gemessen, und nicht festgestellt, dass die Funktion lcd_out() 
das RS-Bit überschrieben hat (Schande über mich).

Vielen Dank trotzdem
MfG
Bastian

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.