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
könnt ihr mir weinigstens sagen, ob das normalerweise funktioniert? bitte! mfg raoul4
funktioniert. Wie hast du "buffer" denn deklariert?
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); } }
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.