mikrocontroller.net

Forum: Compiler & IDEs differ in signedness bei prog_char


Autor: Frank Jonischkies (frajo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich nutzte WinAVR-20071221 mit der avr-libc 1.6.0.
Bis jetzt hatte ich Werte im Programmspeicher so angelegt:
const char unbekannt[]PROGMEM=("Unbekannt\n\r");

Benutzt habe ich sie wie folgt:
void UartPutP(const char *progmem_s) {
  register char c;
  while((c = pgm_read_byte(progmem_s++))) UartPutC(c);
}

UartPutP(unbekannt);

Nun habe ich den Typ prog_char verwendet:
const prog_char unbekannt[]=("Unbekannt\n\r");

und bekomme beim Kompillieren
main.c:53: warning: pointer targets in passing argument 1 of 'UartPutP' 
differ in signedness

Dabei ist doch laut avr-libc:
typedef char PROGMEM   prog_char

prog_char basiert also auf char. Auch wenn ich in UartPutP statt char 
dann prog_char schreibe, bleibt es bei diesem warning. Woran liegt das?

Autor: Frank Jonischkies (frajo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende auch die LCD lib von Peter Fleury:
const prog_char ProgInfo1[] = ""__DATE__"";
const prog_char ProgInfo2[] = ""__AVR_LIBC_VERSION_STRING__"";

void lcd_puts_p(const char *progmem_s)
/* print string from program memory on lcd (no auto linefeed) */
{
    register char c;
    while ( (c = pgm_read_byte(progmem_s++)) ) {
        lcd_putc(c);
    }
}/* lcd_puts_p */

lcd_gotoxy(1, 0);
lcd_puts_p(ProgInfo1);
lcd_gotoxy(1, 1);
lcd_puts_p(ProgInfo2);
Da gibt es keine Warnung beim Übersetzen.

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.