diff options
author | edolomb <none@example.com> | 2017-09-14 14:37:03 +0000 |
---|---|---|
committer | edolomb <none@example.com> | 2017-09-14 14:37:03 +0000 |
commit | f8fe78d5ec576e2d3efc4333bacd9677c96ca6c8 (patch) | |
tree | ecaaaacf366322f9c071c20a100e763bf56cbcac /demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c | |
parent | f88467025f5b3d7bfe5dfa002349fc24eefd8057 (diff) | |
download | ChibiOS-f8fe78d5ec576e2d3efc4333bacd9677c96ca6c8.tar.gz ChibiOS-f8fe78d5ec576e2d3efc4333bacd9677c96ca6c8.tar.bz2 ChibiOS-f8fe78d5ec576e2d3efc4333bacd9677c96ca6c8.zip |
Added Blinking and Serial Thread
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10586 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c')
-rwxr-xr-x | demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c index 4009917da..aeeb6f006 100755 --- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c +++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED/main.c @@ -16,9 +16,9 @@ #include "ch.h"
#include "hal.h"
+#include "chprintf.h"
-static uint32_t seconds_counter;
-static uint32_t minutes_counter;
+#define AICREDIR_KEY 0x5B6C0E26u
/*
* Seconds counter thread.
@@ -27,12 +27,21 @@ static THD_WORKING_AREA(waThread1, 128); static THD_FUNCTION(Thread1, arg) {
(void)arg;
-
+ bool ld = true;
chRegSetThreadName("counter");
while (true) {
+ /* TODO: Replace with toggle function of GPIO */
+ if(ld){
+ PIOA->PIO_PIO_[1].S_PIO_CODR = S_PIO_CODR_P5;
+ ld = false;
+ }
+ else{
+ PIOA->PIO_PIO_[1].S_PIO_SODR = S_PIO_SODR_P5;
+ ld = true;
+ }
+ chprintf((BaseSequentialStream *)&SD0, "ChibiOS is running!\r\n\n");
chThdSleepMilliseconds(1000);
- seconds_counter++;
}
}
@@ -51,6 +60,31 @@ int main(void) { halInit();
chSysInit();
+ /* Redirect interrupts */
+ uint32_t aicredir = SFR_AICREDIR_AICREDIRKEY((uint32_t)(AICREDIR_KEY));
+ SFR->SFR_AICREDIR = (aicredir ^ SFR->SFR_SN1);
+
+ /*
+ * TODO: Replace with PAL functions
+ * Led green
+ */
+ PIOA->PIO_PIO_[1].S_PIO_SIOSR |= S_PIO_SIOSR_P5;
+ PIOA->PIO_PIO_[1].S_PIO_MSKR = S_PIO_MSKR_MSK5_ENABLED;
+ PIOA->PIO_PIO_[1].S_PIO_CFGR = S_PIO_CFGR_DIR_OUTPUT;
+ PIOA->PIO_PIO_[1].S_PIO_SODR = S_PIO_SODR_P5 ;
+
+ /*
+ * TODO: Replace with PAL functions
+ * Uart0 pins PB26 rx and PB27 tx (J18)
+ */
+ PIOA->PIO_PIO_[1].S_PIO_SIOSR |= S_PIO_SIOSR_P26 | S_PIO_SIOSR_P27;
+ /* select pins */
+ PIOA->PIO_PIO_[1].S_PIO_MSKR = S_PIO_MSKR_MSK26 | S_PIO_MSKR_MSK27;
+ /* pins are driven by func_periph_c (uart0 mode) */
+ PIOA->PIO_PIO_[1].S_PIO_CFGR = S_PIO_CFGR_FUNC_PERIPH_C;
+
+ sdStart(&SD0, NULL);
+
/*
* Creates the example thread.
*/
@@ -61,7 +95,6 @@ int main(void) { * increasing the minutes counter.
*/
while (true) {
- chThdSleepSeconds(60);
- minutes_counter++;
+ chThdSleepMilliseconds(500);
}
}
|