Forum: Mikrocontroller und Digitale Elektronik mit Codevision Variablen/Register am LCD ausgeben


von raoul4 (Gast)


Lesenswert?

hallo,
wie schon im betreff angesprochen, möchte ich eine variable oder ein
register mit meinem 90s8538 mit codevision und einem 16x1 lcd ausgeben.
ich habe mir schon diesen beitrag angeschaut:

http://www.mikrocontroller.net/forum/read-1-29684.html#29684

dort steht:

sprintf (buffer,"%7d",A2D);
lcd_gotoxy(0,0);
lcd_puts (buffer);

(die variable A2D heißt bei mir pr. dort ist der wert 9423
reingeschrieben)

jedoch wenn ich compilieren will, kommt der fehler bei "lcd_puts
(buffer);":
"function parameter #1 incompatible with its declaration"

in der standard lcd.h routine ist lcd_puts so deklariert:

// write the string str located in SRAM to the LCD
void lcd_puts(char *str);

wieso geht das dann nicht???


und noch eine noob frage:
was ist ein interrupt????


mfg raoul4

von raoul4 (Gast)


Lesenswert?

könnt ihr mir weinigstens sagen, ob das normalerweise funktioniert?
bitte!

mfg raoul4

von crazy horse (Gast)


Lesenswert?

funktioniert.
Wie hast du "buffer" denn deklariert?

von raoul4 (Gast)


Lesenswert?

danke!!!!! dass du das mal ausprobiert hast!!

hier mal das ganze programm (hat keinen sinn, nur mal so zum lernen)

#include <stdio.h>
#include <90s8535.h>
#asm
   .equ __lcd_port=0x1B
#endasm
#include <lcd.h>


void main (void)
{
char st=1;
char pr=0;
char buffer;
lcd_init(8);
DDRB=0xff;
DDRC=0x00;
PORTD=0x01;
while (1)
  {
  if (PINC.2==0)
  {
    if (st==1)
    {
    pr++;
    PORTB=pr;
    st=0;
    sprintf(buffer,"%d",pr);
    }
  }
  else
  {
  st=1;
  }
  lcd_clear();
  lcd_puts(buffer);
  }

}

von crazy horse (Gast)


Lesenswert?

tja, das klappt so natürlich nicht. Du deklarierst buffer als einfachen
char, da passt natürlich nichts rein.

unsigned char buffer[16];
legt ein array an. Grösse richtet sich natürlich danach, wieviel du auf
einmal schreiben willst. Sinnvolle Grösse ist LCD-Zeilenlänge+1.

von raoul4 (Gast)


Lesenswert?

vielen dank crazy horse!

mfg raoul4

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.