Forum: Mikrocontroller und Digitale Elektronik Frage zur AVR323 - Interfacing GSM modems


von snipersl (Gast)


Lesenswert?

Hallo, ich versuche gerade die "AVR323 - Interfacing GSM modems" von 
Atmel für den GCC anzupassen.

in der AVR323 für IAR:

void COM_putsf( const unsigned char __flash *fstr )
{

    for( ;*fstr != '\0'; )
    {
        COM_putchar( *fstr++ );
    }
}



Meine version für GCC:

void COM_putsf( const unsigned char *fstr )
{
  while ( pgm_read_byte(&fstr) != '\0')
  {
    COM_putchar( pgm_read_byte(fstr++) );
  }
}





es passt auch fast... hier ausschnitt aus dem terminal

ATE0<CR><LF>
<NUL>AT+CNMI=1,1,,,1<CR><LF>
<NUL>AT+CPMS="ME","ME","ME"<CR><LF>
<NUL>AT+CMGD=<NUL>AT+CMGR=<NUL>AT+CMGS=<NUL><CR><LF>
<NUL>OK<CR><LF>
<NUL>+CMTI: <NUL>> <NUL><CR><LF>

ich bin beschäftige mich jetzt auch erst seit einem jahr mit den avrs, 
deshalb dacht ich lieber etwas umschreiben. Könnte mir bitte jemand 
einen tip geben?

danke fürs reinschauen ;)

von holger (Gast)


Lesenswert?

while ( pgm_read_byte(&fstr) != '\0')

Das "&" vor fstr ist falsch. fstr ist bereits eine Adresse
auf deinen String.

von SniperSL ⚡ D. (snipersl) Benutzerseite


Lesenswert?

ging ja schnell, danke für die Hilfe.

bringt mich weiter... ;)

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
Noch kein Account? Hier anmelden.