mirror of
https://github.com/Optiboot/optiboot.git
synced 2025-08-19 09:02:05 +03:00
Fix led flash on tx5, tx61
Since these have weirdo timer1's
This commit is contained in:
@@ -625,8 +625,17 @@ int main(void) {
|
||||
|
||||
#if LED_START_FLASHES > 0
|
||||
// Set up Timer 1 for timeout counter
|
||||
#if defined(__AVR_ATtiny261__)||defined(__AVR_ATtiny461__)||defined(__AVR_ATtiny861__)
|
||||
TCCR1B = 0x0E; //div 8196 - we could divide by less since it's a 10-bit counter, but why?
|
||||
#elif defined(__AVR_ATtiny25__)||defined(__AVR_ATtiny45__)||defined(__AVR_ATtiny85__)
|
||||
TCCR1 = 0x0E; //div 8196 - it's an 8-bit timer.
|
||||
#elif defined(__AVR_ATtiny43__)
|
||||
#error "LED flash for Tiny43 not yet supported"
|
||||
#else
|
||||
TCCR1B = _BV(CS12) | _BV(CS10); // div 1024
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef SOFT_UART
|
||||
#if defined(__AVR_ATmega8__) || defined (__AVR_ATmega8515__) || \
|
||||
@@ -1056,9 +1065,18 @@ void verifySpace() {
|
||||
#if LED_START_FLASHES > 0
|
||||
void flash_led(uint8_t count) {
|
||||
do {
|
||||
TCNT1 = -(F_CPU/(1024*16));
|
||||
TIFR1 = _BV(TOV1);
|
||||
while(!(TIFR1 & _BV(TOV1)));
|
||||
#if defined(__AVR_ATtiny261__)||defined(__AVR_ATtiny461__)||defined(__AVR_ATtiny861__) || defined(__AVR_ATtiny25__)||defined(__AVR_ATtiny45__)||defined(__AVR_ATtiny85__)
|
||||
TCNT1 = -(F_CPU/(8196*16));
|
||||
TIFR = _BV(TOV1);
|
||||
while(!(TIFR & _BV(TOV1)));
|
||||
#elif defined(__AVR_ATtiny43__)
|
||||
#error "LED flash for Tiny43 not yet supported"
|
||||
#else
|
||||
TCNT1 = -(F_CPU/(1024*16));
|
||||
TIFR1 = _BV(TOV1);
|
||||
while(!(TIFR1 & _BV(TOV1)));
|
||||
#endif
|
||||
|
||||
#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega8515__) || \
|
||||
defined(__AVR_ATmega8535__) || defined(__AVR_ATmega16__) || \
|
||||
defined(__AVR_ATmega162__) || defined(__AVR_ATmega32__) || \
|
||||
|
Reference in New Issue
Block a user