Banish some more magic numbers (#6662)
parent
c21281c593
commit
91bd2117df
|
@ -59,11 +59,6 @@
|
||||||
uint16_t bootloader_start;
|
uint16_t bootloader_start;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOT_SIZE_256 0b110
|
|
||||||
#define BOOT_SIZE_512 0b100
|
|
||||||
#define BOOT_SIZE_1024 0b010
|
|
||||||
#define BOOT_SIZE_2048 0b000
|
|
||||||
|
|
||||||
// compatibility between ATMega8 and ATMega88
|
// compatibility between ATMega8 and ATMega88
|
||||||
#if !defined(MCUCSR)
|
#if !defined(MCUCSR)
|
||||||
# if defined(MCUSR)
|
# if defined(MCUSR)
|
||||||
|
@ -86,11 +81,11 @@ void bootloader_jump(void) {
|
||||||
#if !defined(BOOTLOADER_SIZE)
|
#if !defined(BOOTLOADER_SIZE)
|
||||||
uint8_t high_fuse = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS);
|
uint8_t high_fuse = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS);
|
||||||
|
|
||||||
if (high_fuse & BOOT_SIZE_256) {
|
if (high_fuse & ~(FUSE_BOOTSZ0 & FUSE_BOOTSZ1)) {
|
||||||
bootloader_start = (FLASH_SIZE - 512) >> 1;
|
bootloader_start = (FLASH_SIZE - 512) >> 1;
|
||||||
} else if (high_fuse & BOOT_SIZE_512) {
|
} else if (high_fuse & ~(FUSE_BOOTSZ1)) {
|
||||||
bootloader_start = (FLASH_SIZE - 1024) >> 1;
|
bootloader_start = (FLASH_SIZE - 1024) >> 1;
|
||||||
} else if (high_fuse & BOOT_SIZE_1024) {
|
} else if (high_fuse & ~(FUSE_BOOTSZ0)) {
|
||||||
bootloader_start = (FLASH_SIZE - 2048) >> 1;
|
bootloader_start = (FLASH_SIZE - 2048) >> 1;
|
||||||
} else {
|
} else {
|
||||||
bootloader_start = (FLASH_SIZE - 4096) >> 1;
|
bootloader_start = (FLASH_SIZE - 4096) >> 1;
|
||||||
|
|
|
@ -32,33 +32,32 @@ volatile uint32_t timer_count;
|
||||||
*/
|
*/
|
||||||
void timer_init(void) {
|
void timer_init(void) {
|
||||||
#if TIMER_PRESCALER == 1
|
#if TIMER_PRESCALER == 1
|
||||||
uint8_t prescaler = 0x01;
|
uint8_t prescaler = _BV(CS00);
|
||||||
#elif TIMER_PRESCALER == 8
|
#elif TIMER_PRESCALER == 8
|
||||||
uint8_t prescaler = 0x02;
|
uint8_t prescaler = _BV(CS01);
|
||||||
#elif TIMER_PRESCALER == 64
|
#elif TIMER_PRESCALER == 64
|
||||||
uint8_t prescaler = 0x03;
|
uint8_t prescaler = _BV(CS00) | _BV(CS01);
|
||||||
#elif TIMER_PRESCALER == 256
|
#elif TIMER_PRESCALER == 256
|
||||||
uint8_t prescaler = 0x04;
|
uint8_t prescaler = _BV(CS02);
|
||||||
#elif TIMER_PRESCALER == 1024
|
#elif TIMER_PRESCALER == 1024
|
||||||
uint8_t prescaler = 0x05;
|
uint8_t prescaler = _BV(CS00) | _BV(CS02);
|
||||||
#else
|
#else
|
||||||
# error "Timer prescaler value is NOT vaild."
|
# error "Timer prescaler value is not valid"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __AVR_ATmega32A__
|
#ifndef __AVR_ATmega32A__
|
||||||
// Timer0 CTC mode
|
// Timer0 CTC mode
|
||||||
TCCR0A = 0x02;
|
TCCR0A = _BV(WGM01);
|
||||||
|
|
||||||
TCCR0B = prescaler;
|
TCCR0B = prescaler;
|
||||||
|
|
||||||
OCR0A = TIMER_RAW_TOP;
|
OCR0A = TIMER_RAW_TOP;
|
||||||
TIMSK0 = (1 << OCIE0A);
|
TIMSK0 = _BV(OCIE0A);
|
||||||
#else
|
#else
|
||||||
// Timer0 CTC mode
|
// Timer0 CTC mode
|
||||||
TCCR0 = (1 << WGM01) | prescaler;
|
TCCR0 = _BV(WGM01) | prescaler;
|
||||||
|
|
||||||
OCR0 = TIMER_RAW_TOP;
|
OCR0 = TIMER_RAW_TOP;
|
||||||
TIMSK = (1 << OCIE0);
|
TIMSK = _BV(OCIE0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue