Hallo Zusammen
Ich möchte mit einem Atmel EVA-Board einen Kabeltest realisieren. Dazu
setze ich einen Ausganh auf high und überprüfe ob es auf dem richtigen
Eingang rauskommt. Wollte dafür das STK500 nehmen. Zur Überprüfung der
SW habe ich das ganze mit enem ATmega 128 und dem STK501 laufen lassen.
Ohne Probleme.Jetzt will ich das ganze auf einem Atmega 8515 laufen
lassen um kein 501 verwenden zu müssen. Nur leider läuft es nicht. Dabei
ist das Einzige was ich geändert habe die Initialisierung.
Von
#include "Kabeltest.h"
#include <stdio.h>
#include <iom128v.h>
#include <macros.h>
#include <math.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00; //m103 output only
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0xFF;
PORTF = 0x00;
DDRF = 0x00;
PORTG = 0x00;
DDRG = 0x00;
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
MCUCR = 0x00;
EICRA = 0x00; //extended ext ints
EICRB = 0x00; //extended ext ints
EIMSK = 0x00;
TIMSK = 0x00; //timer interrupt sources
ETIMSK = 0x00; //extended timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
auf
#include "Kabeltest.h"
#include <stdio.h>
#include <iom8515v.h>
#include <macros.h>
#include <math.h>
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xFF;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0x00;
PORTD = 0x00;
DDRD = 0x00;
PORTE = 0x00;
DDRE = 0x03;
}
//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
MCUCR = 0x00;
EMCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}
Habe schon überprüft ob die Include 8515 falsche Adressen für die Ports
gespeichert hat. Dies war aber nicht der Fall.
Hat jemand ne Ahnung was ich noch falsch gemacht haben könnte?
Gruß Mike
Immer dasselbe: #include <iom128v.h> ersetzen durch den 8515-Header und schon tuts erheblich besser. Compiler auch umstellen und mal ein bisschen gucken, was sonst noch so alles...
@DerSchelm: Hat Mike doch. Oben steht der alte Programmauszug unten, ab "auf" steht der neue Auszug incl. der richtigen 8m515-Header Datei #include <iom8515v.h>. Gruß Daniel
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.