Hab die Variablen jetzt unter die #define x y sachen geschrieben und IR_Servosteuerung aus der main-Function komplett rausgenommen.
Mein kompletter Code
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;
uint8_t i;
//---------------------------------Interrupt-routinen---------------------------------
ISR(TIMER1_OVF) //(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(uint8_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
ADCSRA = ((1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)); //ADC eingeschaltet, Teilungsfaktor..
DDRD |= ((1<<Scheinwerfer) | (1<<Rueckleuchten));
}
void Initial_IR_Servo(void)
{
TCCR1A = ((1<<WGM11)|(1<<COM1A1)|(1<<COM1A0)); //9-Bit PWM, Inverted Mode
TCCR1B = (1<<CS12); //Prescaler 256
DDRD |= (1<<PWM_ServoPort);
PORTD |= (1<<PWM_ServoPort);
}
//---------------------------------------Hauptprogramm---------------------------------
int main(void)
{
Initial_ADC0();
Initial_IR_Servo();
a=0;
i=0;
sei();
while(1)
{
helligkeitsmessung();
// IR_Servosteuerung();
}
cli();
} //(c:104:2)
und das sind die ganzen Fehlermeldungen:
Code:
main.c:20: warning: `TIMER1_OVF' appears to be a misspelled signal handler
main.c: In function `TIMER1_OVF':
main.c:22: warning: suggest parentheses around assignment used as truth value
main.c:24: warning: implicit declaration of function `IR_Servosteuerung'
main.c:31: warning: suggest parentheses around assignment used as truth value
main.c: At top level:
main.c:69: error: conflicting types for 'IR_Servosteuerung'
main.c:24: error: previous implicit declaration of 'IR_Servosteuerung' was here
main.c:104:2: warning: no newline at end of file
Hab mal die Zeilenzahlen kommmentiert drangeschrieben.
Freu mich über jeden Tipp!
MfG Jan
Lesezeichen