/branches/salvo_test/fc.c |
---|
657,8 → 657,13 |
if(w > 0) |
{ |
ANALOG_OFF; // ADC ausschalten, damit die Werte sich nicht während der Berechnung ändern |
if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten |
ANALOG_ON; // ADC einschalten |
// Salvo Winkelbegrenzung 29.8.2007 ****************** |
if ( (abs (KompassRichtung)) < 135 ) |
{ |
if(!SignalSchlecht) Mess_Integral_Gier += (KompassRichtung * w) / 32; // nach Kompass ausrichten |
} |
// Salvo End |
ANALOG_ON; // ADC einschalten |
if(SignalSchlecht) SignalSchlecht--; |
} |
else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek |
/branches/salvo_test/timer0.c |
---|
52,12 → 52,22 |
{ |
if((cntKompass) && (cntKompass < 4000)) |
{ |
KompassValue = cntKompass; |
} |
// if(cntKompass < 10) cntKompass = 10; |
// KompassValue = (unsigned long)((unsigned long)(cntKompass-10)*720L + 1L) / 703L; |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
cntKompass = 0; |
KompassValue = cntKompass; |
// Salvo Korrektur Ausrichtung kompass **************************** |
KompassValue -= KOMPASS_OFFSET ; |
if (KompassValue < 0) |
{ |
KompassValue = KompassValue +360; |
} |
if (KompassValue >= 360) |
{ |
KompassValue = KompassValue -360; |
} |
// Salvo End ******************** |
} |
cntKompass = 0; |
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180; |
} |
} |
} |
/branches/salvo_test/timer0.h |
---|
1,6 → 1,9 |
#define TIMER_TEILER CK8 |
#define TIMER_RELOAD_VALUE 250 |
// Salvo 30.8.2007 ******************** |
#define KOMPASS_OFFSET 135 // Differenz Winkel zwischen Nordachse Kopter und Nordachse Kompass. |
// Salvo End ******************** // |
void Timer_Init(void); |
void Delay_ms(unsigned int); |
11,4 → 14,4 |
extern volatile unsigned char UpdateMotor; |
extern volatile unsigned int beeptime; |
extern volatile unsigned int cntKompass; |
extern int ServoValue; |
extern int ServoValue; |