/branches/dongfang_FC_rewrite/backup/GPSControl.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/spi.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/uart1.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/eeprom.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/bugs.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ubx.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/gps.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/GPSControl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/spi.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/uart1.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/spectrum.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ubx.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/configuration.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/spectrum.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/configuration.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/yaw-analysis.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/twimaster.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/License.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/externalControl.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/main.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/twimaster.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/attitudeControl.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/controlMixer.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/gyro.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/old_macros.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/externalControl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/main.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/attitudeControl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/readme.txt |
---|
File deleted |
\ No newline at end of file |
/branches/dongfang_FC_rewrite/backup/controlMixer.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/mm3.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/dongfangMath.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/commands.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/mm3.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/commands.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/dongfangMath.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/flexcontrol.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/commands.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/TODO-list.txt |
---|
File deleted |
\ No newline at end of file |
/branches/dongfang_FC_rewrite/backup/invenSense.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/control.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/printf_P.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/invenSense.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/control.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/printf_P.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/fc-0.74_bugs.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/uart0.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/uart0.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/analog.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/sensors.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/naviControl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ports.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/rc.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/menu.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/analog.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/rc.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/heightControl.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/menu.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/sendOutData.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/flight.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/heightControl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/userparams.txt |
---|
File deleted |
\ No newline at end of file |
/branches/dongfang_FC_rewrite/backup/ENC-03_FC1.3.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/mk3mag.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/dsl.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/flight.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ENC-03_FC1.3.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/mk3mag.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/displays.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/dsl.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/encoding-tester.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/makefile |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/output.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/timer0.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ADXRS610_FC2.0.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/timer2.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/H_and_I_AxisCoupling.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/output.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/timer0.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/ADXRS610_FC2.0.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/timer2.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/navi-lang.txt |
---|
File deleted |
\ No newline at end of file |
/branches/dongfang_FC_rewrite/backup/dynamic_calibration_scrap.txt |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/attitude.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/eeprom.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/attitude.h |
---|
File deleted |
/branches/dongfang_FC_rewrite/backup/gps.c |
---|
File deleted |
/branches/dongfang_FC_rewrite/makefile |
---|
15,8 → 15,8 |
#OPTIONS |
# Use one of the extensions for a gps solution |
EXT = NAVICTRL |
#EXT = MK3MAG |
#EXT = NAVICTRL |
EXT = MK3MAG |
# Use optional one the RCs if EXT = NAVICTRL has been used |
#RC = DSL |
28,17 → 28,17 |
#GYRO_PITCHROLL_CORRECTION=0.83f |
#GYRO_YAW_CORRECTION=0.93f |
GYRO=ADXRS610_FC2.0 |
GYRO_HW_NAME=ADXR |
GYRO_HW_FACTOR=1.2288f |
GYRO_PITCHROLL_CORRECTION=1.0f |
GYRO_YAW_CORRECTION=1.0f |
#GYRO=ADXRS610_FC2.0 |
#GYRO_HW_NAME=ADXR |
#GYRO_HW_FACTOR=1.2288f |
#GYRO_PITCHROLL_CORRECTION=1.0f |
#GYRO_YAW_CORRECTION=1.0f |
#GYRO=invenSense |
#GYRO_HW_NAME=Isense |
#GYRO_HW_FACTOR=0.6827f |
#GYRO_PITCHROLL_CORRECTION=0.93f |
#GYRO_YAW_CORRECTION=0.97f |
GYRO=invenSense |
GYRO_HW_NAME=Isense |
GYRO_HW_FACTOR=0.6827f |
GYRO_PITCHROLL_CORRECTION=0.93f |
GYRO_YAW_CORRECTION=0.97f |
#GYRO= |
#GYRO=invenSense |
255,7 → 255,6 |
##LDFLAGS += -T./linkerfile/avr5.x |
# Programming support using avrdude. Settings and variables. |
# Programming hardware: alf avr910 avrisp bascom bsd |
/branches/dongfang_FC_rewrite/mk3mag.c |
---|
52,80 → 52,77 |
#include <stdlib.h> |
#include <inttypes.h> |
#include "timer0.h" |
// #include "rc.h" |
#include "attitude.h" |
#include "eeprom.h" |
#include "mk3mag.h" |
// For the DebougOut alone. |
#include "output.h" |
uint8_t PWMTimeout = 12; |
ToMk3Mag_t ToMk3Mag; |
/*********************************************/ |
/* Initialize Interface to MK3MAG Compass */ |
/*********************************************/ |
void MK3MAG_Init(void) |
{ |
// Port PC4 connected to PWM output from compass module |
DDRC &= ~(1<<DDC4); // set as input |
PORTC |= (1<<PORTC4); // pull up to increase PWM counter also if nothing is connected |
void MK3MAG_Init(void) { |
// Port PC4 connected to PWM output from compass module |
DDRC &= ~(1 << DDC4); // set as input |
PORTC |= (1 << PORTC4); // pull up to increase PWM counter also if nothing is connected |
PWMTimeout = 0; |
PWMTimeout = 0; |
ToMk3Mag.CalState = 0; |
ToMk3Mag.Orientation = 1; |
ToMk3Mag.CalState = 0; |
ToMk3Mag.Orientation = 1; |
} |
/*********************************************/ |
/* Get PWM from MK3MAG */ |
/*********************************************/ |
void MK3MAG_Update(void) // called every 102.4 us by timer 0 ISR |
{ |
static uint16_t PWMCount = 0; |
static uint16_t BeepDelay = 0; |
// The pulse width varies from 1ms (0°) to 36.99ms (359.9°) |
// in other words 100us/° with a +1ms offset. |
// The signal goes low for 65ms between pulses, |
// so the cycle time is 65mS + the pulse width. |
void MK3MAG_Update(void) {// called every 102.4 us by timer 0 ISR |
static uint16_t PWMCount = 0; |
static uint16_t BeepDelay = 0; |
static uint16_t debugCounter = 0; |
// The pulse width varies from 1ms (0°) to 36.99ms (359.9°) |
// in other words 100us/° with a +1ms offset. |
// The signal goes low for 65ms between pulses, |
// so the cycle time is 65mS + the pulse width. |
// pwm is high |
// pwm is high |
if(PINC & (1<<PINC4)) |
{ // If PWM signal is high increment PWM high counter |
// This counter is incremented by a periode of 102.4us, |
// i.e. the resoluton of pwm coded heading is approx. 1 deg. |
PWMCount++; |
// pwm overflow? |
if (PWMCount > 400) |
{ |
if(PWMTimeout) PWMTimeout--; // decrement timeout |
compassHeading = -1; // unknown heading |
PWMCount = 0; // reset PWM Counter |
if (PINC & (1 << PINC4)) { |
// If PWM signal is high increment PWM high counter |
// This counter is incremented by a periode of 102.4us, |
// i.e. the resoluton of pwm coded heading is approx. 1 deg. |
PWMCount++; |
// pwm overflow? |
if (PWMCount > 400) { |
if (PWMTimeout) |
PWMTimeout--; // decrement timeout |
compassHeading = -1; // unknown heading |
PWMCount = 0; // reset PWM Counter |
} |
} else { // pwm is low |
// ignore pwm values values of 0 and higher than 37 ms; |
if ((PWMCount) && (PWMCount < 362)) { // 362 * 102.4us = 37.0688 ms |
if (PWMCount < 10) |
compassHeading = 0; |
else |
compassHeading = ((uint32_t) (PWMCount - 10) * 1049L) / 1024; // correct timebase and offset |
compassOffCourse = ((540 + compassHeading - compassCourse) % 360) - 180; |
PWMTimeout = 12; // if 12 periodes long no valid PWM was detected the data are invalid |
// 12 * 362 counts * 102.4 us |
} |
PWMCount = 0; // reset pwm counter |
DebugOut.Digital[0] ^= DEBUG_MK3MAG; |
DebugOut.Digital[1] &= ~DEBUG_MK3MAG; |
} if (!PWMTimeout) { |
if (CheckDelay(BeepDelay)) { |
if (!BeepTime) |
BeepTime = 100; // make noise with 10Hz to signal the compass problem |
BeepDelay = SetDelay(100); |
DebugOut.Digital[1] |= DEBUG_MK3MAG; |
} |
} |
} |
else // pwm is low |
{ // ignore pwm values values of 0 and higher than 37 ms; |
if((PWMCount) && (PWMCount < 362)) // 362 * 102.4us = 37.0688 ms |
{ |
if(PWMCount <10) compassHeading = 0; |
else compassHeading = ((uint32_t)(PWMCount - 10) * 1049L)/1024; // correct timebase and offset |
compassOffCourse = ((540 + compassHeading - compassCourse) % 360) - 180; |
PWMTimeout = 12; // if 12 periodes long no valid PWM was detected the data are invalid |
// 12 * 362 counts * 102.4 us |
} |
PWMCount = 0; // reset pwm counter |
} |
if(!PWMTimeout) |
{ |
if(CheckDelay(BeepDelay)) |
{ |
if(!BeepTime) BeepTime = 100; // make noise with 10Hz to signal the compass problem |
BeepDelay = SetDelay(100); |
} |
} |
} |
/branches/dongfang_FC_rewrite/output.c |
---|
92,7 → 92,7 |
* Set to 0 for using outputs as the usual flashing lights. |
* Set to one of the DEBUG_... constants in output.h for using the outputs as debug lights. |
*/ |
#define DIGITAL_DEBUG_MASK 0 |
#define DIGITAL_DEBUG_MASK DEBUG_MK3MAG |
// invert means: An "1" bit in digital debug data will feed NO base current to output transistor. |
#define DIGITAL_DEBUG_INVERT 0 |
/branches/dongfang_FC_rewrite/output.h |
---|
19,6 → 19,7 |
#define DEBUG_ACC0THORDER 8 |
#define DEBUG_COMMANDREPEATED 16 |
#define DEBUG_PRESSURERANGE 32 |
#define DEBUG_MK3MAG 64 |
void output_init(void); |
void output_update(void); |