From 6386c12af8af2dc7099dca3ba3b967016bfccf0d Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Thu, 24 May 2012 22:18:52 +0000 Subject: added reset2bootloader function git-svn-id: https://svn.spreadspace.org/avr/trunk@30 aa12f405-d877-488e-9caf-2d797e2a1cc7 --- blink/blink.c | 11 +++++++---- lib/led.c | 3 ++- lib/util.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- lib/util.h | 1 + 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/blink/blink.c b/blink/blink.c index 726cc83..b787fd0 100644 --- a/blink/blink.c +++ b/blink/blink.c @@ -20,8 +20,8 @@ * along with spreadspace avr utils. If not, see . */ -#include "avr/io.h" -#include "util/delay.h" +#include +#include #include "util.h" #include "led.h" @@ -31,9 +31,12 @@ int main(void) cpu_init(); led_init(); - for(;;) { - _delay_ms(50); + int i; + for(i=0;i<10;++i) { + _delay_ms(250); led_toggle(); } + reset2bootloader(); + for(;;){} } diff --git a/lib/led.c b/lib/led.c index 60436e2..ea5bcc3 100644 --- a/lib/led.c +++ b/lib/led.c @@ -20,7 +20,8 @@ * along with spreadspace avr utils. If not, see . */ -#include "avr/io.h" +#include + #include "led.h" #if defined(__BOARD_arduinoUno__) || defined(__BOARD_AvrNetIo__) diff --git a/lib/util.c b/lib/util.c index 3bf17b1..76f5104 100644 --- a/lib/util.c +++ b/lib/util.c @@ -20,7 +20,10 @@ * along with spreadspace avr utils. If not, see . */ -#include "avr/io.h" +#include +#include +#include + #include "util.h" #if defined(CLKPR) @@ -33,3 +36,47 @@ void cpu_init(void) { CPU_PRESCALE(0); } + +void reset2bootloader(void) +{ +#if defined(__BOARD_teensy1__) || defined(__BOARD_teensy1pp__) || defined(__BOARD_teensy2__) || defined(__BOARD_teensy2pp__) || defined(__BOARD_hhd70dongle__) + cli(); + // disable watchdog, if enabled + // disable all peripherals + UDCON = 1; + USBCON = (1<