add constants for prescaler values
This commit is contained in:
parent
7b6f5b5cff
commit
0dede83883
|
@ -3,6 +3,13 @@
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "auxiliaries.h"
|
#include "auxiliaries.h"
|
||||||
|
|
||||||
|
// Prescaler values for timers 1-3-4-5. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg
|
||||||
|
const uint8_t TIMER_PRESCALER_1 = ((0<<CS12)|(0<<CS11)|(1<<CS10));
|
||||||
|
const uint8_t TIMER_PRESCALER_8 = ((0<<CS12)|(1<<CS11)|(0<<CS10));
|
||||||
|
const uint8_t TIMER_PRESCALER_64 = ((0<<CS12)|(1<<CS11)|(1<<CS10));
|
||||||
|
const uint8_t TIMER_PRESCALER_256 = ((1<<CS12)|(0<<CS11)|(0<<CS10));
|
||||||
|
const uint8_t TIMER_PRESCALER_1024 = ((1<<CS12)|(0<<CS11)|(1<<CS10));
|
||||||
|
|
||||||
void initBoard()
|
void initBoard()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -19,7 +26,7 @@ void initBoard()
|
||||||
TCCR1B = 0x00; //Disbale Timer1 while we set it up
|
TCCR1B = 0x00; //Disbale Timer1 while we set it up
|
||||||
TCNT1 = 0; //Reset Timer Count
|
TCNT1 = 0; //Reset Timer Count
|
||||||
TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int)
|
TCCR1A = 0x00; //Timer1 Control Reg A: Wave Gen Mode normal (Simply counts up from 0 to 65535 (16-bit int)
|
||||||
TCCR1B = (1 << CS12); //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg
|
TCCR1B = TIMER_PRESCALER_256; //Timer1 Control Reg B: Timer Prescaler set to 256. 1 tick = 16uS.
|
||||||
TIFR1 = (1 << OCF1A) | (1<<OCF1B) | (1<<OCF1C) | (1<<TOV1) | (1<<ICF1); //Clear the compare flags, overflow flag and external input flag bits
|
TIFR1 = (1 << OCF1A) | (1<<OCF1B) | (1<<OCF1C) | (1<<TOV1) | (1<<ICF1); //Clear the compare flags, overflow flag and external input flag bits
|
||||||
|
|
||||||
boost_pwm_max_count = 1000000L / (16 * configPage6.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz
|
boost_pwm_max_count = 1000000L / (16 * configPage6.boostFreq * 2); //Converts the frequency in Hz to the number of ticks (at 16uS) it takes to complete 1 cycle. The x2 is there because the frequency is stored at half value (in a byte) to allow freqneucies up to 511Hz
|
||||||
|
@ -35,8 +42,7 @@ void initBoard()
|
||||||
TIMSK2 = 0x01; //Timer2 Set Overflow Interrupt enabled.
|
TIMSK2 = 0x01; //Timer2 Set Overflow Interrupt enabled.
|
||||||
TCCR2A = 0x00; //Timer2 Control Reg A: Wave Gen Mode normal
|
TCCR2A = 0x00; //Timer2 Control Reg A: Wave Gen Mode normal
|
||||||
/* Now configure the prescaler to CPU clock divided by 128 = 125Khz */
|
/* Now configure the prescaler to CPU clock divided by 128 = 125Khz */
|
||||||
TCCR2B |= (1<<CS22) | (1<<CS20); // Set bits
|
TCCR2B = (1<<CS22) | (1<<CS20); // Set bits. This timer uses different prescaler values, thus we cannot use the defines above.
|
||||||
TCCR2B &= ~(1<<CS21); // Clear bit. Shouldn't be needed as initial value is 0 anyway, but best to play it safe
|
|
||||||
TIFR2 = (1 << OCF2A) | (1<<OCF2B) | (1<<TOV2); //Clear the compare flag bits and overflow flag bit
|
TIFR2 = (1 << OCF2A) | (1<<OCF2B) | (1<<TOV2); //Clear the compare flag bits and overflow flag bit
|
||||||
|
|
||||||
//Enable the watchdog timer for 2 second resets (Good reference: www.tushev.org/articles/arduino/5/arduino-and-watchdog-timer)
|
//Enable the watchdog timer for 2 second resets (Good reference: www.tushev.org/articles/arduino/5/arduino-and-watchdog-timer)
|
||||||
|
@ -52,14 +58,14 @@ void initBoard()
|
||||||
TCCR3B = 0x00; //Disable Timer3 while we set it up
|
TCCR3B = 0x00; //Disable Timer3 while we set it up
|
||||||
TCNT3 = 0; //Reset Timer Count
|
TCNT3 = 0; //Reset Timer Count
|
||||||
TCCR3A = 0x00; //Timer3 Control Reg A: Wave Gen Mode normal
|
TCCR3A = 0x00; //Timer3 Control Reg A: Wave Gen Mode normal
|
||||||
TCCR3B = (1 << CS11) | (1 << CS10); //Same as: 0x03. Timer3 Control Reg B: Timer Prescaler set to 256. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg
|
TCCR3B = TIMER_PRESCALER_64; //Timer3 Control Reg B: Timer Prescaler set to 64.
|
||||||
TIFR3 = (1 << OCF3A) | (1<<OCF3B) | (1<<OCF3C) | (1<<TOV3) | (1<<ICF3); //Clear the compare flags, overflow flag and external input flag bits
|
TIFR3 = (1 << OCF3A) | (1<<OCF3B) | (1<<OCF3C) | (1<<TOV3) | (1<<ICF3); //Clear the compare flags, overflow flag and external input flag bits
|
||||||
|
|
||||||
//Ignition Schedules, which uses timer 5. This is also used by the fast version of micros(). If the speed of this timer is changed from 4uS ticks, that MUST be changed as well. See globals.h and timers.ino
|
//Ignition Schedules, which uses timer 5. This is also used by the fast version of micros(). If the speed of this timer is changed from 4uS ticks, that MUST be changed as well. See globals.h and timers.ino
|
||||||
TCCR5B = 0x00; //Disable Timer5 while we set it up
|
TCCR5B = 0x00; //Disable Timer5 while we set it up
|
||||||
TCNT5 = 0; //Reset Timer Count
|
TCNT5 = 0; //Reset Timer Count
|
||||||
TCCR5A = 0x00; //Timer5 Control Reg A: Wave Gen Mode normal
|
TCCR5A = 0x00; //Timer5 Control Reg A: Wave Gen Mode normal
|
||||||
TCCR5B = (1 << CS11) | (1 << CS10); //Timer5 Control Reg B: Timer Prescaler set to 64. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg
|
TCCR5B = TIMER_PRESCALER_64; //Timer5 Control Reg B: Timer Prescaler set to 64.
|
||||||
TIFR5 = (1 << OCF5A) | (1<<OCF5B) | (1<<OCF5C) | (1<<TOV5) | (1<<ICF5); //Clear the compare flags, overflow flag and external input flag bits
|
TIFR5 = (1 << OCF5A) | (1<<OCF5B) | (1<<OCF5C) | (1<<TOV5) | (1<<ICF5); //Clear the compare flags, overflow flag and external input flag bits
|
||||||
|
|
||||||
#if defined(TIMER5_MICROS)
|
#if defined(TIMER5_MICROS)
|
||||||
|
@ -71,7 +77,7 @@ void initBoard()
|
||||||
TCCR4B = 0x00; //Disable Timer4 while we set it up
|
TCCR4B = 0x00; //Disable Timer4 while we set it up
|
||||||
TCNT4 = 0; //Reset Timer Count
|
TCNT4 = 0; //Reset Timer Count
|
||||||
TCCR4A = 0x00; //Timer4 Control Reg A: Wave Gen Mode normal
|
TCCR4A = 0x00; //Timer4 Control Reg A: Wave Gen Mode normal
|
||||||
TCCR4B = (1 << CS11) | (1 << CS10); //Timer4 Control Reg B: aka Divisor = 256 = 122.5HzTimer Prescaler set to 256. Refer to www.instructables.com/files/orig/F3T/TIKL/H3WSA4V7/F3TTIKLH3WSA4V7.jpg
|
TCCR4B = TIMER_PRESCALER_64; //Timer4 Control Reg B: Timer Prescaler set to 64.
|
||||||
TIFR4 = (1 << OCF4A) | (1<<OCF4B) | (1<<OCF4C) | (1<<TOV4) | (1<<ICF4); //Clear the compare flags, overflow flag and external input flag bits
|
TIFR4 = (1 << OCF4A) | (1<<OCF4B) | (1<<OCF4C) | (1<<TOV4) | (1<<ICF4); //Clear the compare flags, overflow flag and external input flag bits
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue