Testprogramm für LCD

OP #590911
Lesenswert?
• ▲
▼
Hallo Leute,
ich habe mir eine eigene Bibliothek für ein LCD-Display geschrieben. 
Diese funktioniert auch soweit. Jetzt habe ich ein Programm geschrieben, 
weches von meiner Eingabebaugruppe (8-Bit) die Bits 1-7 einliest. Diese 
Bits werden beim an-ausschalten von Bit8 übernommen.
Jetzt soll auf dem Display einmal die eingegebene Zahl und in der 
zweiten Zeile das hinter dieser Zahl 'versteckte' ASCII-Zeichen 
ausgeben. Ich habe folgendes Programm geschrieben, aber es funktioniert 
nicht ganz korrekt. Er schreibt erstens keine Zahl und in der zweiten 
Zeile erscheint kein ASCII-Zeichen, sondern steht gar nichts.

C-Programm
1
#define   F_CPU    16E6
2

3
#include <avr/io.h>
4
#include <avr/iom128.h>
5
#include <util/delay.h>
6
#include <lcd.h>
7

8
int main( void )
9
{
10
  unsigned char bcd[6];
11

12
  lcd_init();
13

14
  DDRA = 0x00;
15

16
  lcd_pos(0,0);
17
  lcd_string((unsigned char*)"Uncast:");
18
  lcd_pos(1,0);
19
  lcd_string((unsigned char*)"Cast:");
20

21
// Bis hier funktionierts
22

23
  while(1)
24
  {
25
    if((PINA & 0x80) == 0x80)
26
    {
27
      int_to_bcd((PINA & 0x7F), bcd); // Wandelt die eingegeben Zahl in BCD-Zahlen um und schreibt diese in das übergebene Feld
28
      
29
      while((PINA & 0x80) == 0x80);
30

31
      lcd_pos(0,9);
32
      lcd_string(bcd);
33
      lcd_pos(0,9);
34
      lcd_string(bcd);
35

36
// Ab hier funktiuonierts auch wieder
37

38
      lcd_blink(3);
39
      lcd_shift_right(3);
40
      lcd_blink(5);
41
      lcd_shift_left(3);
42
    }
43
  }
44
  return 0;
45
}

Teil aus der lcd.h
1
void int_to_bcd ( unsigned int x, unsigned char *erg)
2
{
3
  unsigned int i;
4
  
5
  for(i=0;i<5;i++)
6
  {
7
    erg[i] = x % 10;
8
    x /= 10;
9
  }
10

11
  erg[5] = '\0';
12
}
13

14
void lcd_string (unsigned char *kette)
15
{
16
  unsigned int i=0;
17

18
  while(kette[i] != '\0')
19
  {
20
    lcd_data(kette[i]);
21
    i++;
22
  }
23
}

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.