AVR Studio meckert bei diesem Programm rum:
Als Fehler kommt das hier:Code:/* * XMega.c * * Timer C0 wird ist auf 1 Sekunde eingestellt. * * Created: 22.03.2012 19:42:07 * Author: Daniel */ #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> void Clock_init(void); void PLL_init(void); void Int_init(void); void Port_init(void); void UART_init(void); void DAC_init(void); void ADCA_init(void); void TimerC0_init(void); void Send_UART(void); void ADC_Cal(void); void Start_Conversion(void); int main(void) { // Variablen volatile int ADC_Value = 0x00; volatile int Calibration_Value_ADC; // Buffer für ADC Kalibrationswert Clock_init(); // Konfiguriert die Clock PLL_init(); // PLL konfigurieren Int_init(); // Interrupts konfigurieren DAC_init(); // DAC konfigurieren ADCA_init(); // ADC konfigurieren ADC_Cal(); // ADC kalibrieren TimerC0_init(); // Timer C0 konfigurieren Port_init(); // Ports konfigurieren UART_init(); // UART konfigurieren while(1) { } } void DAC_init() { DACA.CTRLC = ~(DAC_REFSEL_gm | DAC_LEFTADJ_bm); // Interne 1V Referenz, right adjust (12 Bit); DACA.CTRLA = (DAC_CH0EN_bm | DAC_ENABLE_bm); // 1CLK Takt, Refresh 16CLKs // DACA.TIMCTRL = 0x00; // DAC aktivieren } void ADCA_init() { ADCA.CTRLA = 0x01; // ADC Enable ADCA.CTRLB = 0x04; // Unsigned Mode / 8 Bit ADCA.REFCTRL = 0x00; // Interne 1.0V Referenz } void Clock_init(void) { OSC.CTRL |= OSC_RC32MEN_bm; // Oszillator auf 32Mhz stellen while(!(OSC.STATUS & OSC_RC32MRDY_bm)); // Warten bis der Oszillator bereit ist CCP = CCP_IOREG_gc; CLK.CTRL = 0x01; // Clock auf 32MHz stellen } void PLL_init(void) { } void Int_init(void) { PMIC.CTRL |= PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; // Interrupts (Highlevel,Mediumlevel und Lowlevel freigeben) sei(); // Globale Interruptfreigabe } void Port_init(void) { PORTB.DIR = 0xFF; // Kompletten PortB auf Ausgang stellen } void TimerC0_init(void) { TCC0.CTRLA = TC_CLKSEL_DIV1024_gc; // Vorteiler einstellen TCC0.PER = 31249; // Timer-Topwert einstellen TCC0.CTRLB = 0x00; // Timer in Normalmodus stellen TCC0.INTCTRLA = 0x03; // Interrupt konfigurieren } void UART_init(void) { } void Send_UART(void) { } void Start_Conversion(void) { ADCA.CH0.CTRL = 0x81; // Messung starten und Input-Mode auf Singleended stellen ADC_Value = ADCA_CH0RES; } void ADCA_Cal(void) { Calibration_Value_ADC = 0x00; ADCA_CAL = Calibration_Value_ADC; } ISR(TCC0_OVF_vect) { PORTB.OUT ^= 0x01; }
Bild hier
Dabei habe ich die Variablen doch deklariert....
Hat jemand ne Lösung für das Problem?
Danke schonmal!







Zitieren

Lesezeichen