add LED macros, bump version
This commit is contained in:
parent
d281696895
commit
9424e20ea7
31
main.c
31
main.c
@ -38,15 +38,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined (__AVR_ATmega8__)
|
#if defined (__AVR_ATmega8__)
|
||||||
#define VERSION_STRING "TWIBOOT m8v2.0"
|
#define VERSION_STRING "TWIBOOT m8v2.1"
|
||||||
#define SIGNATURE_BYTES 0x1E, 0x93, 0x07
|
#define SIGNATURE_BYTES 0x1E, 0x93, 0x07
|
||||||
|
|
||||||
#elif defined (__AVR_ATmega88__)
|
#elif defined (__AVR_ATmega88__)
|
||||||
#define VERSION_STRING "TWIBOOT m88v2.0"
|
#define VERSION_STRING "TWIBOOT m88v2.1"
|
||||||
#define SIGNATURE_BYTES 0x1E, 0x93, 0x0A
|
#define SIGNATURE_BYTES 0x1E, 0x93, 0x0A
|
||||||
|
|
||||||
#elif defined (__AVR_ATmega168__)
|
#elif defined (__AVR_ATmega168__)
|
||||||
#define VERSION_STRING "TWIBOOT m168v2.0"
|
#define VERSION_STRING "TWIBOOT m168v2.1"
|
||||||
#define SIGNATURE_BYTES 0x1E, 0x94, 0x06
|
#define SIGNATURE_BYTES 0x1E, 0x94, 0x06
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -61,10 +61,15 @@
|
|||||||
/* 40 * 25ms */
|
/* 40 * 25ms */
|
||||||
#define TIMEOUT 40
|
#define TIMEOUT 40
|
||||||
|
|
||||||
#define LED_RT (1<<PORTB4)
|
#define LED_INIT() DDRB = ((1<<PORTB4) | (1<<PORTB5))
|
||||||
#define LED_GN (1<<PORTB5)
|
#define LED_RT_ON() PORTB |= (1<<PORTB4)
|
||||||
|
#define LED_RT_OFF() PORTB &= ~(1<<PORTB4)
|
||||||
|
#define LED_GN_ON() PORTB |= (1<<PORTB5)
|
||||||
|
#define LED_GN_OFF() PORTB &= ~(1<<PORTB5)
|
||||||
|
#define LED_GN_TOGGLE() PORTB ^= (1<<PORTB5)
|
||||||
|
#define LED_OFF() PORTB = 0x00
|
||||||
|
|
||||||
#define TWI_ADDRESS 0x21
|
#define TWI_ADDRESS 0x29
|
||||||
|
|
||||||
/* SLA+R */
|
/* SLA+R */
|
||||||
#define CMD_WAIT 0x00
|
#define CMD_WAIT 0x00
|
||||||
@ -214,7 +219,7 @@ ISR(TWI_vect)
|
|||||||
/* SLA+W received, ACK returned -> receive data and ACK */
|
/* SLA+W received, ACK returned -> receive data and ACK */
|
||||||
case 0x60:
|
case 0x60:
|
||||||
bcnt = 0;
|
bcnt = 0;
|
||||||
PORTB |= LED_RT;
|
LED_RT_ON();
|
||||||
TWCR |= (1<<TWINT) | (1<<TWEA);
|
TWCR |= (1<<TWINT) | (1<<TWEA);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -314,7 +319,7 @@ ISR(TWI_vect)
|
|||||||
/* SLA+R received, ACK returned -> send data */
|
/* SLA+R received, ACK returned -> send data */
|
||||||
case 0xA8:
|
case 0xA8:
|
||||||
bcnt = 0;
|
bcnt = 0;
|
||||||
PORTB |= LED_RT;
|
LED_RT_ON();
|
||||||
|
|
||||||
/* prev. SLA+R, data sent, ACK returned -> send data */
|
/* prev. SLA+R, data sent, ACK returned -> send data */
|
||||||
case 0xB8:
|
case 0xB8:
|
||||||
@ -350,7 +355,7 @@ ISR(TWI_vect)
|
|||||||
case 0xA0:
|
case 0xA0:
|
||||||
/* data sent, NACK returned */
|
/* data sent, NACK returned */
|
||||||
case 0xC0:
|
case 0xC0:
|
||||||
PORTB &= ~LED_RT;
|
LED_RT_OFF();
|
||||||
TWCR |= (1<<TWINT) | (1<<TWEA);
|
TWCR |= (1<<TWINT) | (1<<TWEA);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -367,7 +372,7 @@ ISR(TIMER0_OVF_vect)
|
|||||||
TCNT0 = TIMER_RELOAD;
|
TCNT0 = TIMER_RELOAD;
|
||||||
|
|
||||||
/* blink LED while running */
|
/* blink LED while running */
|
||||||
PORTB ^= LED_GN;
|
LED_GN_TOGGLE();
|
||||||
|
|
||||||
/* count down for app-boot */
|
/* count down for app-boot */
|
||||||
if (boot_timeout > 1)
|
if (boot_timeout > 1)
|
||||||
@ -398,8 +403,8 @@ void disable_wdt_timer(void)
|
|||||||
int main(void) __attribute__ ((noreturn));
|
int main(void) __attribute__ ((noreturn));
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
DDRB = LED_GN | LED_RT;
|
LED_INIT();
|
||||||
PORTB = LED_GN;
|
LED_GN_ON();
|
||||||
|
|
||||||
/* move interrupt-vectors to bootloader */
|
/* move interrupt-vectors to bootloader */
|
||||||
/* timer0: running with F_CPU/1024, OVF interrupt */
|
/* timer0: running with F_CPU/1024, OVF interrupt */
|
||||||
@ -444,7 +449,7 @@ int main(void)
|
|||||||
MCUCR = (0<<IVSEL);
|
MCUCR = (0<<IVSEL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PORTB = 0x00;
|
LED_OFF();
|
||||||
|
|
||||||
uint16_t wait = 0x0000;
|
uint16_t wait = 0x0000;
|
||||||
do {
|
do {
|
||||||
|
Loading…
Reference in New Issue
Block a user