Nabend zusammen,
ich melde mich mal wieder zu Wort.
Ich habe ein kleines Versuchsprogramm in C geschrieben in dem ich den
wert einer Variablen mit einer Taste inkementiere und mit einer anderen
Taste dekriemtiere. Den Wert der Variablen lasse ich mir auf einem LCD
anzeigen.
(Ja ich weiss die Tasten sind nicht entprellt usw. aber es ist nur ein
experientiercode)
Nun möchte ich den Wert der Variable in das EEPROM schreiben um ihn nach
abschalten der Stromversorgung wieder in meine Variable schreiben zu
können.
Ich habe mich da an dem AVR-GCC-Tutorial orientiert.
Allerdings meckert der Compiler mit folgender Fehlermeldung:
"main.c:17: error: section attribute cannot be specified for local
variables"
Und da komm ich nicht weiter. Was habe ich vergessen, was habe ich
falsch gemacht. Kann mir da wer helfen?
Hier mein Code aus der main.c
1 | #include <avr/io.h>
|
2 | #include "lcd.h"
|
3 | #include <util/delay.h>
|
4 | #include <stdlib.h>
|
5 | #include <avr/eeprom.h>
|
6 | int main(void)
|
7 | {
|
8 |
|
9 | DDRD = 0b00000000;
|
10 | lcd_init();
|
11 | uint8_t X = 0;
|
12 | char Buffer[20]; // in diesem {} lokal
|
13 | itoa( X, Buffer, 10 );
|
14 | lcd_clear();
|
15 | // ... ausgeben
|
16 | lcd_string( Buffer );
|
17 | uint8_t eeFooByte EEMEM = 0;
|
18 | while(1)
|
19 | {
|
20 | if (!( PIND & (1<<PD6)) )
|
21 | {
|
22 | X++;
|
23 | lcd_setcursor(0,0);
|
24 | char Buffer[20]; // in diesem {} lokal
|
25 | itoa( X, Buffer, 10 );
|
26 | lcd_clear();
|
27 | // ... ausgeben
|
28 | lcd_string( Buffer );
|
29 | eeprom_write_byte(&eeFooByte, X);
|
30 | while(!(PIND & (1<<PD6)))
|
31 | {
|
32 | }
|
33 |
|
34 | }
|
35 | if (!( PIND & (1<<PD7)) )
|
36 | {
|
37 | X--;
|
38 | lcd_setcursor(0,0);
|
39 | char Buffer[20]; // in diesem {} lokal
|
40 | itoa( X, Buffer, 10 );
|
41 | lcd_clear();
|
42 | // ... ausgeben
|
43 | lcd_string( Buffer );
|
44 | eeprom_write_byte(&eeFooByte, X);
|
45 | while(!(PIND & (1<<PD7)))
|
46 | {
|
47 | }
|
48 |
|
49 | }
|
50 |
|
51 |
|
52 | }
|
53 |
|
54 | return 0;
|
55 | }
|
Ich danke schonmal für eure Hilfe ;-)
Gruß
HighTec