Hallo Zusammen,
ich stehe gerade vor einem kleinen Problem, aber ich hoffe ja das Ihr
mir mal wieder eine Hilfestellung geben könnt.
Ich habe mir einen Quellcode angesehen und bin der Meinung das in diesem
Quellcode ein BUG sitzt. Aber Vielleicht belehrt Ihr mich ja eines
besseren.
Also jemand hat das so geschrieben:
1 | rom char* ASCII1 = {0x00 , 0x00 , 0x00 , 0x00 , 0x00, // space // 32 - 43
| 2 | 0x00 , 0x06 , 0x5F , 0x06 , 0x00, // !
| 3 | 0x07 , 0x03 , 0x00 , 0x07 , 0x03, // ''
| 4 | 0x24 , 0x7E , 0x24 , 0x7E , 0x24, // #
| 5 | 0x24 , 0x2B , 0x6A , 0x12 , 0x00, // $
| 6 | 0x63 , 0x13 , 0x08 , 0x64 , 0x63, // %
| 7 | 0x36 , 0x49 , 0x56 , 0x20 , 0x50, // &
| 8 | 0x00 , 0x07 , 0x03 , 0x00 , 0x00, // '
| 9 | 0x00 , 0x3E , 0x41 , 0x00 , 0x00, // (
| 10 | 0x00 , 0x41 , 0x3E , 0x00 , 0x00, // )
| 11 | 0x08 , 0x3E , 0x1C , 0x3E , 0x08, // *
| 12 | 0x08 , 0x08 , 0x3E , 0x08 , 0x08}; // +
|
Ich bin der Meinung das ich keinen Pointer direkt auf ein Array legen
kann. Vielleicht habe ich ja unrecht, aber dann erklärt mir doch mal
bitte wieso der Programmierer dort nicht die Feldgröße definiert hat und
wie der Pointer weiß das er das Ende erreicht hat!?
Ich habe den Pionter mal Probehalber von AVRstudio kompilieren lassen
und tausende Fehlermeldungen bekommen!? Stehe gerade auf dem
Schlauch.... Ich meine klar den Befehl "rom" habe ich weggelassen... den
kennt der compiler nicht, aber den Rest müsste er doch kennen!
Danke schon mal vorab!!
Gruß
Benjamin
Benjamin Klimmek wrote:
> Ich bin der Meinung das ich keinen Pointer direkt auf ein Array legen
> kann. Vielleicht habe ich ja unrecht, aber dann erklärt mir doch mal
> bitte wieso der Programmierer dort nicht die Feldgröße definiert hat und
> wie der Pointer weiß das er das Ende erreicht hat!?
>
Weil der Compiler viel zuverlässiger und fehlerfreier die
Anzahl der Initialisierungen abzählen kann, als es der Programmierer
macht.
> Ich meine klar den Befehl "rom"
Ich schätze mal, dass genau dieses "rom" den Unterschied ausmacht.
Bei solchen Sachen gibt es immer irgendwelche compilerspezifischen
Erweiterungen.
Im WinAvr müsste es, wie du richtig vermutest mit einem
Array und PROGMEM realisiert werden.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
|