Ich glaube du solltest mal das GCC-Tutorial durcharbeiten. Die Fehler die da angezeigt werden sind relativ banal.Ich habe die Fehler behoben, bei den globalen Variablen sind zwei Zeilen eingfügt, sonst hat sich in der Struktur nichts geändert, so kannst du deine Fehler selbst kontrollieren. Ob das Programm auch richtig läuft habe ich nicht getestet.Code:#include <avr/io.h> #include <stdint.h> #include <avr/interrupt.h> //#include <util/delay.h> #ifndef F_CPU #define F_CPU 16000000 #endif #define Scheinwerfer 0 #define Rueckleuchten 1 #define PWM_ServoPort 5 //Globale Variablen uint8_t a; uint16_t i; uint16_t count; void IR_Servosteuerung(uint16_t i); //---------------------------------Interrupt-routinen--------------------------------- ISR(TIMER1_OVF_vect) //(c:20)Diese Routine soll bei Overflow von Timer1 ausgeführt werden { if(a==0) //(c:22) { IR_Servosteuerung(i); //(c:24) i++; if (i>=50) { a=1; } } if (a==1) //(c:31) { IR_Servosteuerung(i); i--; if (i<=0) { a=0; } } } //---------------------------------Helligkeitsmessung--------------------------------- void helligkeitsmessung(void) { uint16_t LDR; ADCSRA |= (1<<ADSC); while (ADCSRA & (1<<ADSC)) { ; } LDR = ADCL; LDR += (ADCH<<8); if (LDR<150) { PORTD |= (1<<Scheinwerfer); PORTD |= (1<<Rueckleuchten); } if (LDR>160) { PORTD &= ~(1<<Scheinwerfer); PORTD &= ~(1<<Rueckleuchten); } } //-------------------------------------IR_Servosteuerung--------------------------------------- void IR_Servosteuerung(uint16_t count) { //(c:69) OCR1A=(count+440); //440=min, 490=max } //-------------------------------------initialisierungen--------------------------------------- void Initial_ADC0(void) { ADMUX = 0x00; //AREF, resultat rechtsbündig, ADC-Eingang ADC0
Lesezeichen