replace START_WAIT timer with simple loop
This commit is contained in:
parent
93453d0aaa
commit
0cbb5686dc
43
main.c
43
main.c
@ -84,11 +84,14 @@
|
|||||||
* WAIT-mode waits 1 sec for the S command if nothing is recived
|
* WAIT-mode waits 1 sec for the S command if nothing is recived
|
||||||
* then the user prog is started ..
|
* then the user prog is started ..
|
||||||
*/
|
*/
|
||||||
#define START_SIMPLE
|
//#define START_SIMPLE
|
||||||
//#define START_WAIT
|
#define START_WAIT
|
||||||
//#define START_POWERSAVE
|
//#define START_POWERSAVE
|
||||||
//#define START_BOOTICE
|
//#define START_BOOTICE
|
||||||
|
|
||||||
|
/* wait 1s in START_WAIT mode (10ms steps) */
|
||||||
|
#define WAIT_VALUE 100
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* enable/disable readout of fuse and lock-bits
|
* enable/disable readout of fuse and lock-bits
|
||||||
* (will not work for Mega169 since not supported by AVRPROG 1.37
|
* (will not work for Mega169 since not supported by AVRPROG 1.37
|
||||||
@ -109,6 +112,7 @@
|
|||||||
#include <avr/wdt.h>
|
#include <avr/wdt.h>
|
||||||
#include <avr/boot.h>
|
#include <avr/boot.h>
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
#include <util/delay.h>
|
||||||
|
|
||||||
#include "chipdef.h"
|
#include "chipdef.h"
|
||||||
|
|
||||||
@ -324,43 +328,20 @@ int main(void)
|
|||||||
|
|
||||||
#elif defined(START_WAIT)
|
#elif defined(START_WAIT)
|
||||||
|
|
||||||
// Timer-Setup for ATmega8
|
uint16_t cnt = 0;
|
||||||
// - verify that the configuration is valid for the target AVR
|
|
||||||
|
|
||||||
#define MY_WAIT 900
|
|
||||||
// wait ca 1 sec (900ms)
|
|
||||||
TCCR1A = 0; // timer setup
|
|
||||||
// F_OSC / 8 / 1000 -> 1ms
|
|
||||||
#if (((F_CPU / 8 / 1000)*MY_WAIT) < 65535)
|
|
||||||
#warning Information: setting prescaler to 8
|
|
||||||
#define WAIT_VALUE ((F_CPU / 8 / 1000)*MY_WAIT)
|
|
||||||
TCCR1B |= (1<<CS01);
|
|
||||||
#elif ((((F_CPU / 64 / 1000)*MY_WAIT) < 65535))
|
|
||||||
#warning Information: setting prescaler to 64
|
|
||||||
#define WAIT_VALUE ((F_CPU / 64 / 1000)*MY_WAIT)
|
|
||||||
TCCR1B |= (1<<CS01) | (1<<CS00);
|
|
||||||
#elif ((((F_CPU / 256 / 1000)*MY_WAIT) < 65535))
|
|
||||||
#warning Information: setting prescaler to 256
|
|
||||||
#define WAIT_VALUE ((F_CPU / 256 / 1000)*MY_WAIT)
|
|
||||||
TCCR1B |= (1<<CS02);
|
|
||||||
#else //((((F_CPU / 1024 / 1000)*MY_WAIT) < 65535))
|
|
||||||
#warning Information: setting prescaler to 1024
|
|
||||||
#define WAIT_VALUE ((F_CPU / 1024 / 1000)*MY_WAIT)
|
|
||||||
TCCR1B |= (1<<CS00) | (1<<CS02); //1024 prescaler
|
|
||||||
#endif
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (UART_STATUS & (1<<UART_RXREADY)) {
|
if (UART_STATUS & (1<<UART_RXREADY))
|
||||||
if (UART_DATA == 'S')
|
if (UART_DATA == 'S')
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
if (TCNT1 >= WAIT_VALUE){
|
if (cnt++ >= WAIT_VALUE) {
|
||||||
BLPORT &= ~(1<<BLPNUM); // set to default
|
BLPORT &= ~(1<<BLPNUM); // set to default
|
||||||
TCCR1B = 0; // timer off
|
|
||||||
jump_to_app(); // Jump to application sector
|
jump_to_app(); // Jump to application sector
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_delay_ms(10);
|
||||||
}
|
}
|
||||||
TCCR1B = 0; // timer off
|
|
||||||
send_boot();
|
send_boot();
|
||||||
|
|
||||||
#elif defined(START_BOOTICE)
|
#elif defined(START_BOOTICE)
|
||||||
|
Loading…
Reference in New Issue
Block a user