Banish some more magic numbers (#6662)

This commit is contained in:
fauxpark 2019-09-08 01:12:46 +10:00 committed by Drashna Jaelre
parent c21281c593
commit 91bd2117df
2 changed files with 13 additions and 19 deletions

View File

@ -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;

View File

@ -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
} }