Karl Heinz Buchegger schrieb:
> Die Idee dürfte sein, über einen Flash-String eine Klasse zu stülpen, so
> dass die Klasse beim Zugriff auf den String die Flash-Dereferenzierung
> automatisch macht.
OK dann habe ich das falsch verstanden.
Allerdings macht sowas bei µCs meiner Meinung nach keinen Sinn, denn er
legt dann ja für jeden im Flash abzulegenden String eine neue Klasse mit
an, die wo liegt ?
Also wenn er nun mit einem Schlag das label gleich als Flashstring haben
will OHNE Leerzeichen wohlgemerkt müßte es doch einfach so gehen:
1 | #include <avr/io.h>
|
2 | #include <avr/pgmspace.h>
|
3 |
|
4 | public class pgmlabel
|
5 | {
|
6 | private const char* labelpointer;
|
7 | pgmlabel(const char* label)
|
8 | {
|
9 | PSTR(label);
|
10 | labelpointer = label;
|
11 | }
|
12 | const char* get()
|
13 | {
|
14 | return labelpointer
|
15 | }
|
16 | }
|
Macht für mich aber immer noch keinen richtigen Sinn, weil ich ja den
Pointer ins Flash immer noch dereferenzieren muß.
Oder habe ich immer noch nicht verstanden was das eigentliche Problem
ist ?
Ich würde meine Strings in einem extra Header als PROGMEM Arrays
definieren und dazu dann defines die als label dienen, dann einfach eine
Klasse schreiben die den << überlädt das nun indiziert auf's Flash
zugegriffen wird und die defines dieser Klasse als Parameter übergeben.