Hallo!
In meinem derzeitigen Projekt möchte ich gerne einen LCD benutzen. Um
den SRAM meines ATTinys nicht allzu sehr zu belasten, möchte ich die
mehrere Strings als Array im Flash speichern.
1 | #include <stdlib.h>
|
2 | #include <avr/io.h>
|
3 | #include <stdint.h>
|
4 | #include <avr/interrupt.h>
|
5 | #include <avr/pgmspace.h>
|
6 |
|
7 | #include "lcd.h"
|
8 |
|
9 | #define MAX_SENSORS 3
|
10 |
|
11 | const char sensornames[MAX_SENSORS][10] PROGMEM = {"Temp.:","Tank:","Licht:"};
|
12 |
|
13 | int main(void) {
|
14 | uint8_t sensor = 0; //wird im endgueltigen Programm von Zeit zu Zeit inkrementiert
|
15 | lcd_init(LCD_DISP_ON);
|
16 | sei();
|
17 |
|
18 | lcd_clrscr();
|
19 | lcd_puts_P(sensornames[sensor]);
|
20 |
|
21 | for(;;){
|
22 | }
|
23 | }
|
Jedoch gibt der gcc den Fehler (Linie mit lcd_puts_P) "ungültige
Initialisierung" zurück.
Wie ist das zu verstehen?
Gruss
Stephan
PS: Nutze die LCD-Lib von Peter Fleury