Austausch Atmga16 gegen Atmega644
Ich habe ein kleines problem was ich nicht verstehen...
Ich möchte für eine Anwendung ein Olimex ProtoBoard P40-USB verwenden..um mal schnell das neu gelieferte Protoboatd zu testen habe ich einen Atmega644 draufgesteckt(Pinkompatible mit Atm 16/32) und die von Olimex Blinkcode verwendet...Nur ging diese mit dem 644er nicht, wohl aber mit dem 16 oder 32er. Hier mal der Code:
Code:
/* Sample program for Olimex AVR-P40-USB with ATMega16 processor
* Blink Led
* Compile with AVRStudio+WinAVR (gcc version 3.4.6) */
#define __AVR_ATmega644__ 1 // CPU Typ Angeben
#ifndef F_CPU
#define F_CPU 8000000 // 8 MHz
#endif
#include "avr/io.h"
void PORT_Init()
{
PORTB = 0b00000000;
DDRB = 0b00000001; //set Led as output
}
int main()
{
unsigned int i;
PORT_Init();
while (1)
{
PORTB = PORTB | 0b00000001;
for (i=50000; i; i--); // Zeitschleife
PORTB = PORTB & 0b11111110;
for (i=50000; i; i--); // Zeitschleife
}
}
******************************************************************************
/* Sample program for Olimex AVR-P40-USB with ATMega16 processor
* Blink Led
* Compile with AVRStudio+WinAVR (gcc version 3.4.6) */
#define __AVR_ATmega644__ 1
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
void PORT_Init()
{
PORTB = 0b00000000;
DDRB = 0b00000001; //set Led as output
}
int main()
{
PORT_Init();
while (1)
{
PORTB = 0b11111110;
_delay_ms(1000);
PORTB = 0b00000001;
_delay_ms(1000);
}
}
******************************************************************************
Bei Atmega 16/32 gehen oberer und unterer Code, beim 644 nur der untere, beim oberen habe ich "dauerlicht"
es ist zwar nicht lebendbedrohlich, aber ich kann mir das nicht erklären warum das so ist. Da ich das Board ja mit einem 644 oder gar mit einem 1284p bestücken möchte , will ich Fehler im Vorfeld ausmärzen , nicht das ich mich später dumm und dähmlich suche...
Die Fuses stimmen , alle kontrolliert.. (soweit ich diese für richtig halte... ;) )
Weiss wer einen Rat ??
Gruss und Dank Gerhard
Liste der Anhänge anzeigen (Anzahl: 1)
Danke Marcus für den Tip !
ich habe mal alle Optimierungseinmstellungen im AVR-Studio durch ...keine Änderung..bleibt wie es ist...bleibt eben Chipabhängig ob es funnzt. Habe aber auch darin keine Erfahrung und mich noch nie damit befasst... default ist -OS eingestellt.
Anhang 28281
Nun ja ich kann ja meinen Code ATMega644 freundlich schreiben, nur hat es mich verwundert , dass ein solcher Effekt aufgetreten ist...
Gerhard