mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-25 18:08:06 +02:00
atusb/fw: implemented ATUSB_RESET
- board.c (board_init): disable the watchdog timer (tricky !) - board.h (reset_cpu), board.c: enable the watchdog timer to cause a CPU reset - ep0.c (my_setup): uncommented and updated ATUSB_RESET handler
This commit is contained in:
parent
6179f31fc0
commit
42dae8dde2
@ -61,6 +61,12 @@ void reset_rf(void)
|
||||
}
|
||||
|
||||
|
||||
void reset_cpu(void)
|
||||
{
|
||||
WDTCSR = 1 << WDE;
|
||||
}
|
||||
|
||||
|
||||
uint8_t read_irq(void)
|
||||
{
|
||||
return PIN(IRQ_RF);
|
||||
@ -90,6 +96,13 @@ void panic(void)
|
||||
|
||||
void board_init(void)
|
||||
{
|
||||
/* Disable the watchdog timer */
|
||||
|
||||
MCUSR = 0; /* Remove override */
|
||||
WDTCSR |= 1 << WDCE; /* Enable change */
|
||||
WDTCSR = 1 << WDCE; /* Disable watchdog while still enabling
|
||||
change */
|
||||
|
||||
/* We start with a 1 MHz/8 clock. Disable the prescaler. */
|
||||
|
||||
CLKPR = 1 << CLKPCE;
|
||||
|
@ -63,6 +63,7 @@
|
||||
|
||||
|
||||
void reset_rf(void);
|
||||
void reset_cpu(void);
|
||||
uint8_t read_irq(void);
|
||||
|
||||
void led(int on);
|
||||
|
@ -82,12 +82,10 @@ static int my_setup(const struct setup_request *setup)
|
||||
usb_send(&eps[0], buf+i, size, NULL, NULL);
|
||||
return 1;
|
||||
|
||||
#ifdef NOTYET
|
||||
case ATUSB_TO_DEV(ATUSB_RESET):
|
||||
debug("ATUSB_RESET\n");
|
||||
RSTSRC = SWRSF;
|
||||
reset_cpu();
|
||||
while (1);
|
||||
#endif
|
||||
|
||||
case ATUSB_TO_DEV(ATUSB_RF_RESET):
|
||||
debug("ATUSB_RF_RESET\n");
|
||||
|
Loading…
Reference in New Issue
Block a user