Forum: Mikrocontroller und Digitale Elektronik EEPROM Testprogramm läuft auf ATmaga16 aber nicht ATmega 324a


von Sven S. (nutellamann)


Lesenswert?

Hallo Leute,


nach einigen Veruschen habe ich es endlich geschafft, in einem kleinen 
Testprogramm den internen EEPROM im ATmega16 zu nutzen und die 
gespeicherten Werte auf LEDs am PORTC auszugeben. Da ich in meinem 
Projekt aber den ATmega 324a nutzen möchte, habe ich das Programm für 
diesen kompiliert und geflasht, jedoch passiert nichts.

Hier der Quelltext vom Testprogramm:
1
#include<avr/io.h>
2
#include<avr/eeprom.h>
3
#include<util/delay.h>
4
uint8_t eezahl[] EEMEM = { 0xF0, 0x0F, 0x01, 0x02,};
5
6
int main(void)
7
{
8
  DDRC=0xFF;
9
  EECR=0x0F;
10
  while(1)
11
  {
12
    PORTC=0x00;
13
    eeprom_busy_wait();
14
    PORTC=eeprom_read_byte(&eezahl[0]);
15
    eeprom_busy_wait();
16
    _delay_ms(1000);
17
    PORTC=eeprom_read_byte(&eezahl[1]);
18
    eeprom_busy_wait();
19
    _delay_ms(1000);
20
    PORTC=eeprom_read_byte(&eezahl[2]);
21
    eeprom_busy_wait();
22
    _delay_ms(1000);
23
    PORTC=eeprom_read_byte(&eezahl[3]);
24
    eeprom_busy_wait();
25
    _delay_ms(1000);
26
  }
27
return 1;
28
}

Im Makefile habe ich folgende Werte für den 324er angepasst:
1
# Personal Settings for avr-gcc
2
MCU = atmega324a
3
F_CPU = 8000000
4
TARGET = eeprom
5
FORMAT = ihex
6
# Personal Settings for avrdude
7
AVRDUDE_PORT = /dev/ttyACM0    
8
AVRDUDE_TARGET = m324a
9
AVRDUDE_SPEED = 1

Mit dem 16er hab ich es so:
1
# Personal Settings for avr-gcc
2
MCU = atmega16
3
F_CPU = 8000000
4
TARGET = eeprom
5
FORMAT = ihex
6
# Personal Settings for avrdude
7
AVRDUDE_PORT = /dev/ttyACM0    
8
AVRDUDE_TARGET = m16
9
AVRDUDE_SPEED = 1
Kann mir jemand sagen, was ich beim ATmega324 ändern muss, damit das 
Programm auch läuft?

von Oliver (Gast)


Lesenswert?

Eigentlich übernehmen die eeprom-Funktionen der avrlibc alles 
notwendige. Das EECR würde ich da in Ruhe lassen.

Oliver

von Sven S. (nutellamann)


Lesenswert?

Oliver schrieb:
> Eigentlich übernehmen die eeprom-Funktionen der avrlibc alles
> notwendige. Das EECR würde ich da in Ruhe lassen.
>
> Oliver

Vielen Dank :D Jetzt funktioniert es.

Gruß Sven

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.