www.mikrocontroller.net

Forum: Compiler & IDEs Flasharray an UART ausgeben


Autor: Daniel Goßmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich versuche ein Array of Char aus dem Flash an einen UART zu senden 
(mega8515). Ich habe mich so weit es ging ans GCC-Tutorial 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu... 
gehalten (kein String Ende Zeichen), bekomme aber jetzt immer eine 
Compilerwarnung: "pointer targets in passing argument 1 of 
'UART_SendCMD_p' differ in signedness"

Was mache ich falsch?

const uint8_t SCS_CMD_RESET[]   PROGMEM = {0xAA, 0xAA, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0x01, 0x00, 0x5F, 0x55, 0x55} ;

void UART_Tx_Byte(char DataByte)
{
  // Waint for UART ready
  while (! (UCSRA & (1<<UDRE))) 
    
  // Put DataByte to UART Transmit Buffer
  UDR = DataByte ;
}

void UART_SendCMD_p(const char *cmd, uint8_t len)
{
  while (len--) 
    {
      UART_Tx_Byte(pgm_read_byte(cmd)) ;
      cmd++ ;
    }
}

void main(void)
{
  // Aufruf und "pointer targets in passing argument 1 of 'UART_SendCMD_p' differ in signedness"
  UART_SendCMD_p(SCS_CMD_RESET, sizeof(SCS_CMD_RESET)) ;
}


Gruß
Daniel

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein uint8_t ist nunmal unsigned, während ein char signed ist. Also 
entweder das Argument der Funktion in "const uint8_t *cmd" umbenennen 
oder den Flash-String mit "char" initialisieren anstatt mit "uint8_t"...

Autor: Daniel Goßmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Johannes!

Verstehen wäre schöner, als aus dem Tut abtippen, aber nun läuft es.

Gruß
Daniel

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.