diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin index 09c63abe7e8f195fe04283413c99aec87407663e..9f3771a8b8b220d6f7f63a32ae57141f223f6962 100644 Binary files a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin and b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin differ diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o index 8088fec857374725b6f6648405a43919cd6ad874..14656110aff0402f86e8a0c674c9ee5877e2b0fa 100644 Binary files a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o and b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o differ diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c index 22a5081802c4c3d08ef4516288d67c09f52f0d5e..1b71c2fd05e6400eebc96a50b7feb3614afa0669 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c @@ -35,6 +35,8 @@ pin_t stlb; pin_t stlr; pin_t button; +pin_t p3lr; + int main (void) { /* Insert system clock initialization code here (sysclk_init()). */ @@ -45,6 +47,9 @@ int main (void) PMC->PMC_PCER0 = 1 << ID_PIOA; PMC->PMC_PCER0 = 1 << ID_PIOD; + p3lr = pin_new(PIOD, PIO_PER_P10); + pin_output(p3lr); + stlb = pin_new(PIOA, PIO_PER_P1); pin_output(stlb); @@ -54,13 +59,33 @@ int main (void) button = pin_new(PIOA, PIO_PER_P15); pin_input(button); + PMC->PMC_PCER1 = 1 << 14; // UART4 go clock go + + PIOD->PIO_PDR = PIO_PER_P18; + PIOD->PIO_PDR = PIO_PER_P19; + + PIOD->PIO_ABCDSR[0] = ~PIO_PER_P18; + PIOD->PIO_ABCDSR[0] = ~PIO_PER_P19; + PIOD->PIO_ABCDSR[1] = PIO_PER_P18; + PIOD->PIO_ABCDSR[1] = PIO_PER_P19; + + UART4->UART_MR = UART_MR_BRSRCCK_PERIPH_CLK | UART_MR_CHMODE_NORMAL; + UART4->UART_BRGR = 32; // clock / this value * 16 + UART4->UART_CR = UART_CR_TXEN | UART_CR_RXEN; + while(1){ - if(pin_get_state(button)){ + if(pin_get_state(button)){ // hi, button is not pressed pin_clear(stlb); pin_set(stlr); + while(!(UART4->UART_SR & UART_SR_TXRDY)){ // wait for ready + pin_clear(p3lr); + } + pin_set(p3lr); + UART4->UART_THR = 85; } else { pin_set(stlb); pin_clear(stlr); + pin_set(p3lr); } } }