EEPROM Testprogramm läuft auf ATmaga16 aber nicht ATmega 324a

OP #2967127
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren