Rev 785 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 785 | Rev 790 | ||
---|---|---|---|
Line 50... | Line 50... | ||
50 | else // PWM is low |
50 | else // PWM is low |
51 | { |
51 | { |
52 | if((PWMCount) && (PWMCount < 400)) |
52 | if((PWMCount) && (PWMCount < 400)) |
53 | { |
53 | { |
54 | if(PWMCount <9) PWMHeading = 0; |
54 | if(PWMCount <9) PWMHeading = 0; |
55 | else PWMHeading = ((uint32_t)(PWMCount - 9) * 1049L) >> 10; // correct timebase and offset |
55 | else PWMHeading = ((uint32_t)(PWMCount - 9) * 1049L)/1024; // correct timebase and offset |
56 | PWMTimeout = 12; // if 12 periodes long no valid PWM was detected the data are invalid |
56 | PWMTimeout = 12; // if 12 periodes long no valid PWM was detected the data are invalid |
57 | // 12 * 400 counts * 102.4 us = 419 ms |
57 | // 12 * 400 counts * 102.4 us = 419 ms |
58 | } |
58 | } |
59 | PWMCount = 0; // reset pwm counter |
59 | PWMCount = 0; // reset pwm counter |
60 | } |
60 | } |
Line 66... | Line 66... | ||
66 | /*********************************************/ |
66 | /*********************************************/ |
67 | int16_t CMPS03_Heading(void) |
67 | int16_t CMPS03_Heading(void) |
68 | { |
68 | { |
69 | int16_t heading, w, v; |
69 | int16_t heading, w, v; |
Line 70... | Line -... | ||
70 | - | ||
71 | DebugOut.Analog[11] = PWMTimeout; |
- | |
72 | 70 | ||
73 | if(PWMTimeout) |
71 | if(PWMTimeout) |
74 | { |
72 | { |
75 | w = abs(IntegralPitch / 512); |
73 | w = abs(IntegralPitch / 512); |
76 | v = abs(IntegralRoll / 512); |
74 | v = abs(IntegralRoll / 512); |