eeprom_read_byte() wirft Fehler

Gast #2451867
Lesenswert?
• ▲
▼
Hallo,

ich verzweifle nun schon an einem einfachen Programm, das einfach nur 
ein Byte aus dem EEPROM eines ATmega8 lesen und wieder reinschreiben 
soll:
1
#include <avr/io.h>
2
#include <avr/eeprom.h>
3

4

5
uint8_t eeModus EEMEM = 0;
6
uint8_t b;
7

8
int main(void)
9
{
10
    eeModus = 5;
11
    b = eeprom_read_byte(&eeModus);
12

13
    b++;
14

15
    eeprom_write_byte(b, &eeModus);
16

17
    while(1)
18
    {
19

20
    };
21

22
    return 0;
23
}

Dabei spuckt mir der Compiler das hier aus:
1
avr-gcc -Wall -mmcu=atmega8 -DF_CPU=1000000UL  -mmcu=atmega8 -Os -c -g -Os -w -ffunction-sections -fdata-sections -std=c99   -I/usr/lib/avr/include  -c main.c -o obj/Debug/main.o
2
avr-g++ -L/usr/lib/avr/lib  -o bin/Debug/M8_EEPROM.elf obj/Debug/main.o   -mmcu=atmega8 -Wl,-Map=bin/Debug/M8_EEPROM.elf.map,--cref -mmcu=atmega8 -Wl,-Map=bin/Debug/M8_EEPROM.elf.map,--cref  
3
obj/Debug/main.o: In function `main':
4
..../main.c:11: undefined reference to `__eerd_byte_m8'
5
..../main.c:15: undefined reference to `__eewr_byte_m8'
6
collect2: ld returned 1 exit status

Ich kompiliere mit Code::Blocks (10.05) und:
AVR-GCC: 4.5.3
avr-libc: 1.7.1

Wäre wirklich gut, wenn ich dank euch endlich mein Problem lösen könnte 
;-)
Ich danke euch schonmal!
(Firma: privat) #2475943
Lesenswert?
• ▲
▼
Versuchs mal so:

#include <avr/io.h>
#include <avr/eeprom.h>

uint8_t eeModus EEMEM = 5;
uint8_t b;

int main(void)
{
    //eeModus = 5;
    eeprom_busy_wait();
    b = eeprom_read_byte(&eeModus);

    b++;
    eeprom_busy_wait();
    eeprom_write_byte( &eeModus,b);

    while(1)
    {

    };

    return 0;
}


eeprom_busy_wait() - dient laut mein Büchlein dazu, um den "erlaubten" 
lese/schreibzugriff zu garantieren.
#2475952
Lesenswert?
• ▲
▼
Thomas P. schrieb:
> eeprom_busy_wait() - dient laut mein Büchlein dazu, um den "erlaubten"
> lese/schreibzugriff zu garantieren.
der TO hat aber nicht das Problem dass sein Programm nicht funktioniert, 
sondern dass er gar kein Programm erstellen kann

Olli schrieb:
> Mhh, ich glaube das ist bei Code::Blocks vielleicht normal?
nee, ist nicht normal

ich betreibe CodeBlocks mit makefile, da kann ich alles entsprechend 
einstellen

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.