Hallo Experten, ich programmiere einen ATmega16 in C mit WINAVR. Funktioniert bisher prima. Jetzt möchte ich eine 256 Byte große Lookup-Table ins Flash ablegen, so dass ich mit dem Z-Pointer dann darauf zugreifen kann. Kann mir jemand sagen, wie ich so eine Tabelle mit Inline Assembler ins Flash bekomme? Ich habe schon zig Threads abgeklappert und alles mögliche daraus zusammengeflickt, aber der Compiler gibt immer Fehlermeldungen aus wie z.B. "C:\Users\AppData\Local\Temp\ccQnVRCc.s:18: Error: junk at end of line, first unrecognized character is `.' " Hat jemand einen Tip für mich oder einen Link zu einer guten Beschreibung? Oder kann man mit Inline-Assembler gar keine Tabellen ablegen? Danke für jegliche Hinweise! Manfred
Hallo, hier der Quellcode für die Tabelle (Tabelle etwas gekürzt):
1 | asm ( "sine:" |
2 | ".byte 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95" |
3 | ".byte 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95" ); |
Später möchte ich dann mit dem Z-Pointer und der Adresse "sine" auf die Tabelle zugreifen. vielen Dank schon vorab! Manfred
Mach die Tabelle doch einfach in C so wie in http://www.mikrocontroller.net/articles/AVR_Arithmetik/Sinus_und_Cosinus_(Lineare_Interpolation%29
Danke für den Link, das sieht sehr gut aus. Habe ich nicht selbst gefunden... Ich teste und melde mich mit dem Ergebnis! Manfred
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.