LCD Anzeige und Arrays

OP #2506225
Lesenswert?

Hallo Leute,

Ich beschäftige mich erst seit kurzem mit dem Thema ATMEGA und 
experimentier noch etwas mit dem STK500 herum.
Derzeit bin ich dabei mich mit dem Thema LCD Display zu befassen.
Dabei bin ich auf folgendes Problem gestossen:

Wenn ich der routine lcd_string(); einen string übergebe funktioniert 
alles bestens wenn ich allerdings ein char Array baue und einen Wert 
übergeben will kommen nur Sonderzeichen. Egal ob ich es mit zahlen oder 
Texten versuche.
Was mache ich da falsch ?:

Danke für Eure Hilfe

lg Eddi

#include <avr/io.h>
#include "lcd-routines.h"
#include "lcd-routines.c"


int main(void)
{
  // Initialisierung des LCD
  lcd_init();
  lcd_setcursor( 0, 2 );

  char Ausgabe = "xxx";
  int push,i,zahl = 0;

   char rgb_wert[3]={'100','200','300'};

  while(1)
  {
  push = check_button(0);      //Abfrage ob Taste gedrückt wurde
  {
  if(push == 1)          //Wenn Taste gedrückt wurde ->
    {
    Ausgabe = rgb_wert[i];
    i++;
    }
  }

  push = check_button(1);      //Abfrage ob Taste gedrückt wurde
  {
    if(push == 1)          //Wenn Taste gedrückt wurde ->
    {
      Ausgabe = "100";
    }
  }
  lcd_setcursor( 0, 2 );
  lcd_string(Ausgabe);
  }

  return 0;
}
Gast #2506261
Lesenswert?

>Was mache ich da falsch ?:

Du versuchst per Try and Error C zu lernen.
Das geht allerdings in die Hose.

>   char rgb_wert[3]={'100','200','300'};
>   Ausgabe = "100";

Warum z.B. diese beiden ausgewählten Zeilen
entweder gar nicht oder nur mit massiven Warnings
compiliert werden erzählt dir ein Buch zu C
das du dir noch besorgen musst.
Gast #2506316
Lesenswert?

Eddi Ramoser schrieb:
> char Ausgabe = "xxx";

Du erzeugst ein einziges char, weist dann aber einen String zu.
So würde es gehen:
1
char Ausgabe[] = "xxx";

Eddi Ramoser schrieb:
> char rgb_wert[3]={'100','200','300'};

Das ist genauso Bullshit.
Entweder Du lässt die Anführungszeichen weg, dann weist Du einen 
Dezimalen Wert zu (das letzte Zeichen geht aber nicht! Stichwort 
Wertebereich eines chars).
Die 2.Möglichkeit ist Du willst wirklich ein char zuweisen, z.B.
1
char rgb_wert[3]={'1','2','3'};
2
char abc_wert[3]={'x','y','z'};
OP #2506336
Lesenswert?

Hallo SNR

Danke für Deine Hilfe so komme ich der Sache näher - ich komme aus einer 
anderen Ecke der Programmiersprachen und muss mich c erst annähern  ( 
Buch habe ich bereits).

>>> Was passiert wenn Du die Taste länger drückst und in i z.B. 4 drin
steht?

ich weiss das war nur ein Test - ich muss den Wert i abfangen.

lg eddi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren