Subversion Repositories FlightCtrl

Rev

Rev 2117 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1612 dongfang 1
#ifndef _TIMER2_H
2
#define _TIMER2_H
3
 
4
#include <inttypes.h>
2189 - 5
#include <math.h>
6
#include "configuration.h"
1612 dongfang 7
 
2189 - 8
extern volatile uint16_t pwmChannels[MAX_PWMCHANNELS];
9
 
10
#define SERVO_RESOLUTION FINE
11
 
12
#if (SERVO_RESOLUTION == COARSE)
13
#define F_TIMER2 (F_CPU/32)
14
#define CS2 ((1<<CS21)|(1<<CS20))
15
#else
16
#define F_TIMER2(F_CPU/8)
17
#define CS2 (1<<CS21)
18
#endif
19
 
20
//#define ABSOLUTE_MIN ((float)F_TIMER2*0.00075 + 0.5)
21
//#define ABSOLUTE_MAX ((float)F_TIMER2*0.00225 + 0.5)
22
 
23
#define PULSELENGTH_800  ((float)F_TIMER2*0.0008)
24
#define PULSELENGTH_1000 ((float)F_TIMER2*0.0010)
25
#define PULSELENGTH_1500 ((float)F_TIMER2*0.0015)
26
#define PULSELENGTH_2000 ((float)F_TIMER2*0.0020)
27
#define PULSELENGTH_2200 ((float)F_TIMER2*0.0022)
28
 
29
#define PWM_CONTROL_SCALE_FACTOR (PULSELENGTH_1000/(float)CONTROL_RANGE)
30
#define PWM_BYTE_SCALE_FACTOR (PULSELENGTH_1000/256.0)
31
 
32
// Prevent damage even if grossly misconfigured:
33
// Multiply this by angle in int16-degrees and again by 100 to get servo deflection to same angle 
34
// (assuming 90 degrees over 1 ms, which is the norm):
35
 
1612 dongfang 36
void timer2_init(void);
2189 - 37
//void calculateServoValues(void);
1612 dongfang 38
#endif //_TIMER2_H