Hallo! mein problem: beim GCC für den AVR funktionierten folgende aufrufe für meine USART-Senderoutine usart_puts problemlos: ... unsigned char string={"Hallo"}; usart_puts("Hallo"); usart_puts(string); ... hier der code der USART-Senderoutine für einen String void usart_puts(unsigned char *pointer) { while(*pointer != 0){ usart_putc(*pointer++); } } jedoch der C18 Compiler für den PIC hat hier probleme mit dem usart_puts("Hallo") aufruf, ich musste den prototype auf void usart_puts(const rom unsigned char *pointer) abändern damit dies wieder funktionierte. Also brauche ich 2 verschiedne routinen (usart_puts(unsigned char *pointer) und usart_puts(const rom unsigned char *pointer)) was etwas lästig ist, da ich sonst den AVR Code nicht umschreiben müsste. kann mir jemand vielleicht einen tip gebe, wie ich das mit nur einer routine realisieren kann? Danke und schöne grüße, Max
Bei den PIC18 Prozessoren wird RAM (*pointer) völlig anders angesprochen als FLASH ("String"). Da wird wohl kein Weg daran vorbeiführen, zwei unterschiedliche Routinen zu verwenden. Dieter
Und wenn du deine konstanten Strings wie "Hallo" auch in einer Stringvariablen ablegst? Carsten
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.