lcd_string funktioniert nicht wenn ich eine Variabel ausgeben möchte

Gast #1142292
Hallo ich versuche immer noch eine Variable mit der Funktion lcd_string 
auf ein Display zugeben aber es geht immer noch nicht. Wenn ich Speicher 
in "" setze kann ich speicher auch dem Display sehen aber ich dann nicht 
0b00011100 über die Variabel speicher ausgeben. Kann mir jemand sagen 
was ich Falsch mache?

#include <util/delay.h>
#include <avr/io.h>
#include "lcd.h"

int speicher;
int speicher2;
int main(void)
{
lcd_init();

while(speicher2!=1)
{
speicher2 = 1;
speicher = 0b00011100;

lcd_string ("Test");
lcd_string (speicher);


}
return 0;
}
Gast
Hier habe ich mal die Funktion lcd string was mich so verwiert ist das 
das früher funktioniert hat ich bin mir aber nicht mehr sicher.

void lcd_string(char *data)  {
    int z=0;
  while(*data) {
        lcd_data(*data);

      if (z == 15) {
      lcd_home_2nd_line();}
    data++;
    z++;
    }


void lcd_data(unsigned char temp) {

  unsigned char lsn,msn;

  msn = temp >> 4;
  msn = msn & 0b00001111;
  msn = msn | 0b00010000;
  lcd_port = msn;
  lcd_enable();

  _delay_us(47);

  lsn = temp & 0b00001111;
  lsn = lsn | 0b00010000;
  lcd_port = lsn;
  lcd_enable();

  _delay_us(47);

}
michi wrote:
> Hier habe ich mal die Funktion lcd string was mich so verwiert ist das
> das früher funktioniert hat ich bin mir aber nicht mehr sicher.
>
> void lcd_string(char *data)  {
>     int z=0;
>   while(*data) {
>         lcd_data(*data);
>
>       if (z == 15) {
>       lcd_home_2nd_line();}
>     data++;
>     z++;
>     }
>

Ja, das ist eine Funktion, welche einen String auf dem LCD ausgibt.
String, nicht Integer

Also sowas:
1
int main()
2
{
3
  char Test[20];
4

5
  strcpy( Test, "20" );
6
  lcd_string( Test );
7
}

Aber den Fall hast du ja nicht. Du hast einen Integer. Meinetwegen mit 
dem Inhalt 20
1
int main()
2
{
3
  int i;
4

5
  i = 2 * 10;
6
}

Damit du den über lcd_string ausgeben kannst, musst du erst mal aus der 
Zahl 20 den String "20" generieren.

Schau dir doch einfach mal den Link aus der FAQ an.
Gast
Danke das geht schon mal aber ich möchte auf mein Display sehen wie oft 
eine Zählschleife burchgelaufen ist darum möchte ich eine Variable aus 
lesen.

int main()
{
  char Test[20];

  strcpy( Test, "20" );
  lcd_string( Test );
}

so kann ich die Zahl 20 ausgeben aber wie kann ich die Variable z.B. 
Zählwert ausgeben?
michi wrote:
> Danke das geht schon mal aber ich möchte auf mein Display sehen wie oft
> eine Zählschleife burchgelaufen ist darum möchte ich eine Variable aus
> lesen.
>
> int main()
> {
>   char Test[20];
>
>   strcpy( Test, "20" );
>   lcd_string( Test );
> }
>
> so kann ich die Zahl 20 ausgeben aber wie kann ich die Variable z.B.
> Zählwert ausgeben?



Grrrrrrrr


Was bitte ist so schwer auf den Link den ich dir oben gegeben habe, 
einfach mal draufdzudrücken. Dort sind 3 Möglichkeiten angegeben, wie du 
die Aufbereitung machen kannst, damit du lcd_string einsetzen kannst.
Hi Michi,

das gleiche Problem hatte ich auch, als ich angefangen habe mit einem 
LCD zu arbeiten.

Hab mal zwei kleine Änderungen eingefügt. Bei meinem Programm hats 
danach funktioniert.
1
#include <util/delay.h>
2
#include <avr/io.h>
3
#include "lcd.h"
4

5
int speicher;
6
int speicher2;
7
int main(void)
8
char c_speicher[20];               //!   Char die ans Disp gesendet wird
9
{
10
lcd_init();
11

12
while(speicher2!=1)
13
{
14
speicher2 = 1;
15
speicher = 0b00011100;
16

17
lcd_string ("Test");
18
itoa (speicher,c_speicher,10);     //!   Wandelt Integer in Char um
19
lcd_string (c_speicher);           //!   Hier muss dann das Char übergeben werden
20

21

22
}
23
return 0;
24
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.