mikrocontroller.net

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


Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
könnt ihr mir weinigstens sagen, ob das normalerweise funktioniert?
bitte!

mfg raoul4

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
funktioniert.
Wie hast du "buffer" denn deklariert?

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);
  }

}

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank crazy horse!

mfg raoul4

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.