[C] PIND Auslesen und auf Display ausgeben.

OP #963545
Hallo

Ich möchte den Dezimal Wert der PORTD an ein LCD Senden...

Ich mache das in meinem Prog so:
1
void send_int(int *zahl){
2
       char Buffer[20];          //umwandlung von Dezimal in ASCII
3
       itoa(zahl, Buffer, 10 ); 
4
     
5
       lcd_string(Buffer);
6
    }
7

8

9

10
int main(void){
11

12
    lcd_init();
13
  DDRD = 0;
14
  
15
  
16
 while(1)
17
    { 
18
  set_cursor(0,1);
19
  send_int(PIND);
20
    }
21
}

Wenn ich nun zb. Taster 0 Drücke, dan steht auf dem Display 254
wenn ich Taster 1 Drücke steht 253
wenn ich Taster 1 und 0 Drücke so steht 252

Also alles ok

wenn ich taster 7 Drücke, steht 127
wenn ich taster 6 drücke steht 191
wenn ich jedoch taster 7 und 6 drücke, steht 637

woher kommt das?

Danke schonmal
OP #963562
Achjaaaaaaaaaaa

hab ich total vergessen :D

Hmmm.... wie krieg ich den nun die nachfolgenden zeichen gelöscht?

Ich bin noch anfänger in c... sorry

das sowas lcd_sting("         "); gehen würde weis ich schon
aber das erschein mir etwas unsauber....
Gast #963565
Hallo mal wieder Claudio,
also ich wette mal du drückst taster 7 und 127 erscheint auf dem 
Display.
danach drückst Taster 6 und 7. Da sollte dann nach deiner 
Anschlussbelegung natürlich 63 erscheinen.
Das Problem ist nur du setzt den Cursor immer auf erstes Zeichen und da 
127 drei Zeichen hat und 63 nur zwei wird von der 127 nur 1 und 2 
überschrieben und die 7 bleibt stehen. Ergebnis = 63 von Taster 6 und 7 
und die 7 von der 127. Also alles Ok.

MAch also am besten bei sowas lcd_clear(); statt set_cursor.

Gruss
OP #963589
Hi....

ja hab ich probiert....

Das problem ist, wenn ich lcd_clear() in der while(1) schleife
ausführe, dann sieht man nix mehr auf dem display.....

also müsst ich bei Stellen wechsel clear nur einmal ausführen
doch bevor ich mir den kopf zerbrochen habe wie man das machen könnte,
hab ich gedacht ich warte ab ob es noch ne andere lösung gibt

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.