Hallo zusammen,
ich wollte nur kurz fragen, ob ich folgendes so definieren und
deklarieren darf...
1 | //stringlib.h
|
2 | #ifndef STRINGLIB_H_
|
3 |
|
4 | #define STRINGLIB_H_
|
5 |
|
6 |
|
7 |
|
8 | #include <avr/pgmspace.h>
|
9 |
|
10 | extern const char checksum00[] PROGMEM;
|
11 |
|
12 | extern const char checksum01[] PROGMEM;
|
13 |
|
14 | #endif
|
1 | //stringlib.c
|
2 | #include "stringlib.h"
|
3 |
|
4 | const char checksum00[] PROGMEM = "keine Fehler";
|
5 |
|
6 | const char checksum01[] PROGMEM = "falsche Checksumme";
|
1 | //errorbitmap.h
|
2 | #ifndef ERRORBITMAP_H_
|
3 |
|
4 | #define ERRORBITMAP_H_
|
5 |
|
6 | #include <stdint.h>
|
7 |
|
8 | #include <avr/pgmspace.h>
|
9 |
|
10 | #include "stringlib.h";
|
11 |
|
12 | extern char *errortext;
|
13 |
|
14 | typedef struct{
|
15 |
|
16 |
|
17 | //checksum
|
18 |
|
19 | uint8_t ebm_testchecksum;
|
20 |
|
21 |
|
22 | }struct_errorbitmap;
|
23 |
|
24 | extern PGM_P p_errortext_checksum0[];
|
25 | #endif
|
1 | //errorbitmap.c
|
2 | #include "errorbitmap.h"
|
3 |
|
4 | PGM_P p_errortext_checksum0[] = {checksum00,checksum01};
|
1 | //main.c
|
2 | #include <avr/io.h>
|
3 |
|
4 | #include <avr/pgmspace.h>
|
5 |
|
6 | #include <string.h>
|
7 | #include "errorbitmap.h"
|
8 |
|
9 | char *errortext;
|
10 | errorbitmap.ebm_testchecksum = 0;
|
11 | int main(void)
|
12 | {
|
13 | errorbitmap.ebm_testchecksum = lesevoneepromirgendwas();
|
14 | //ausgabe
|
15 | text_p(p_errortext_checksum[errorbitmap.ebm_testchecksum]);
|
16 | return 0;
|
17 | }
|
Das sollte mal abbilden, was ich mache. text_p() erwartet Pointer zum
Falsh.
Mach ich dabei etwas falsch? Ich bin gerade auf Bugsuche :(