Hallo, ich bin zum ersten Mal seit langem wieder in C und auf dem atMega unterwegs. Die Anwendung ist so gut wie fertig, mir bereitet allerdings memcpy_P Kopfzerbrechen. Es ist bestimmt eine Kleinigkeit, die ich vergessen habe. buffer0: data 0x01D3 80 00 7f 61 38 7f 34 00 7f 7f 7f 00 00 panel: data 0x0102 00 00 00 00 00 00 00 00 00 00 00 00 00 memcpy_P(&panel, buffer0, sizeof(panel)); Speicher nach memcpy: buffer0: data 0x01D3 80 00 7f 61 38 7f 34 00 7f 7f 7f 00 00 panel: data 0x0102 91 cf 91 08 95 cf 93 df 93 00 d0 00 d0 Wenn ich per Schleife byte für byte kopiere gehts. Was läuft hier falsch?
Tom schrieb: > Was läuft hier falsch? Dass du memcpy_P verwendest, obwohl doch die Quell-Daten offenbar im RAM liegen, und nicht im Flash.
Die memcpy_P liesst aus Flash, nicht aus data (SRAM). Für RAM->RAM musst Du das normale memcpy() benutzen.
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.