Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2188 → Rev 2189

/branches/dongfang_FC_rewrite/timer0.h
5,28 → 5,28
 
// Normally it is 20MHz/2048 = 9765.625 Hz
#define F_TIMER0IRQ ((float)F_CPU/2048.0)
#define MAINLOOP_DIVIDER 10
// Originally it is 488
#define F_MAINLOOP (F_TIMER0IRQ/(2.0*MAINLOOP_DIVIDER))
#define T_TIMER0IRQ ((float)2048.0/(float)F_CPU)
// About 250 Hz
#define F_CONTROL 250
#define CONTROLLOOP_DIVIDER (F_TIMER0IRQ/F_CONTROL)
#define SERIALLOOP_DIVIDER 61
#define OUTPUTLOOP_DIVIDER 100
 
#define BEEP_MODULATION_NONE 0xFFFF
#define BEEP_MODULATION_RCALARM 0x0C00
#define BEEP_MODULATION_I2CALARM 0x0080
#define BEEP_MODULATION_BATTERYALARM 0x0300
#define BEEP_MODULATION_EEPROMALARM 0x0007
extern volatile uint32_t jiffiesClock;
extern volatile uint32_t millisClock;
extern volatile uint8_t loopJiffiesClock;
 
extern volatile uint32_t globalMillisClock;
extern volatile uint8_t runFlightControl;
extern volatile uint16_t beepModulation;
extern volatile uint16_t beepTime;
#ifdef USE_NAVICTRL
extern volatile uint8_t SendSPI;
#endif
 
extern void timer0_init(void);
extern void delay_ms(uint16_t w);
extern void delay_ms_with_adc_measurement(uint16_t w, uint8_t stop);
extern uint16_t setDelay(uint16_t t);
extern int8_t checkDelay(uint16_t t);
 
typedef enum {
NOT_RUNNING = 0,
RUNNING,
BLOCKED_FOR_CALIBRATION
} FlightControlRunStatus;
 
extern volatile uint8_t flightControlStatus;
 
#endif //_TIMER0_H