Forum: Mikrocontroller und Digitale Elektronik LCD Ansteuerung C18 -> XC8


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ingo S. (schicki)


Lesenswert?

Hallo Zusammen,

schreibe gerade meine Ansteuerung von einem LCD um. Am C18 läuft dieser 
Code. Beim XC8 meckert der Compiler an zwei Stellen:
error: (267) bad storage class

Wer kann helfen?
1
Header-File:
2
extern void LCD_PRINT(char line, char pos, auto const rom char *str);
3
extern void LCD_PRINTF(int line, int pos, auto const rom char *fmt, ...);// auto const MEM_MODEL rom char *fmt, ...)
4
5
C-File:
6
void LCD_PRINT(char line, char pos, auto const rom char *str)
7
{
8
  if (line==1)
9
  {  
10
    LCD_Command(pos|0x80);
11
  }  
12
  else
13
  {  
14
    LCD_Command((pos+0x40)|0x80);
15
  }
16
17
  while(*str)
18
  {
19
    LCD_Data(*str);
20
       str++;
21
  }
22
}
23
24
void LCD_PRINTF(int line, int pos, auto const rom char *fmt, ...) // auto const MEM_MODEL rom char *fmt, ...)
25
{ 
26
    va_list args;
27
    va_start(args,fmt);
28
    
29
    vsprintf(cString, fmt, args);
30
31
    if(line == 1)
32
    {
33
        LCD_Command(pos|LINE1);
34
    }
35
    else
36
    {
37
        LCD_Command(pos|LINE2);
38
    }
39
40
    LCD_PutCString(cString);
41
42
    va_end(args);
43
}
44
45
Aufruf:
46
        LCD_PRINT(1,0,"Hallo Welt");
47
        LCD_PRINT(2,0,"Test");
48
49
        int f = 64, g = 0xff;
50
        LCD_PRINTF(2,0,"%-#x %-#x %c",f,g,f);

Viele Grüße
Ingo

von Sebastian K. (sek)


Lesenswert?

Liegt es vielleicht am C++ Keyword 'auto'?

von Ingo S. (schicki)


Lesenswert?

leider nein

../lcd.h:41: error: (372) "," expected

von Noch einer (Gast)


Lesenswert?

Das "rom" ist beim CX8 raus geflogen.

const char[] hat den selben Effekt wie das alte rom char[]. Funktionen 
wie strlen() usw. gibt es doppelt. Mit und ohne const.

Recht gewöhnungsbedürftig.

von Ingo S. (schicki)


Lesenswert?

Hab die Funktion umgeschrieben. Das ist sehr gewöhnungsbedürtig.Schade! 
war sehr praktisch.

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]
  • [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.