Ich möchte gerne einen Block ins EEPROM schreiben (ATMEGA8), irgendwo
ist aber ein haken....
1 | include <avr/eeprom.h>
|
2 |
|
3 | typedef struct {
|
4 | unsigned char cInMask;
|
5 | unsigned char cOutMask;
|
6 | unsigned int iCounter[5];
|
7 | } t_env;
|
8 |
|
9 | t_env g_env;
|
10 | t_env ee_env EEMEM;
|
11 |
|
12 |
|
13 | void WriteEE()
|
14 | {
|
15 | eeprom_write_block ( &g_env, &ee_env, sizeof (t_env) ); // Zeile A
|
16 | PORTD |= 0x01; // LED am Port (ein)
|
17 | }
|
18 |
|
19 | int main (void)
|
20 | {
|
21 | DDRD= 0x01; // 1 ist ein ausgang
|
22 | PORTD = 0x00; // LED am Port (aus)
|
23 |
|
24 | g_env.cInMask= 0x12; // irgendwelche werte....
|
25 | g_env.cOutMask= 0x34;
|
26 | g_env.iCounter[0]= 0x56;
|
27 |
|
28 | WriteEE(); // und schreiben
|
29 |
|
30 | while (1) {
|
31 | } // endlos
|
32 | }
|
Nun müssten die Werte eigentlich im EEPROM liegen und die LED am PORTD
ansein, ist sie auch wenn ich die "Zeile A-> eeprom_write_block"
auskommentiere. sonst bleibt sie aus, kann mir jemand sagen was ich
falsch mache?
MfG VG1