diff options
author | tfateba <none@example.com> | 2017-06-09 23:31:17 +0000 |
---|---|---|
committer | tfateba <none@example.com> | 2017-06-09 23:31:17 +0000 |
commit | e458f3904898ecb8947372d22d92a5d92237e124 (patch) | |
tree | e3beef54e1425a662f495a85e6f8731a339e6477 /demos/AVR/RT-PRO-MICRO/main.c | |
parent | 6e8584a24b6dea449671b96de9c6c4ff307c9167 (diff) | |
download | ChibiOS-e458f3904898ecb8947372d22d92a5d92237e124.tar.gz ChibiOS-e458f3904898ecb8947372d22d92a5d92237e124.tar.bz2 ChibiOS-e458f3904898ecb8947372d22d92a5d92237e124.zip |
Rename AVR demos
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10252 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/AVR/RT-PRO-MICRO/main.c')
-rw-r--r-- | demos/AVR/RT-PRO-MICRO/main.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/demos/AVR/RT-PRO-MICRO/main.c b/demos/AVR/RT-PRO-MICRO/main.c new file mode 100644 index 000000000..5b81bcd8c --- /dev/null +++ b/demos/AVR/RT-PRO-MICRO/main.c @@ -0,0 +1,79 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "ch.h" +#include "hal.h" +#include "usbcfg.h" + +SerialUSBDriver SDU1; + +static THD_WORKING_AREA(waThread1, 32); +static THD_FUNCTION(Thread1, arg) { + + (void)arg; + chRegSetThreadName("Blinker"); + while (true) { + palTogglePad(IOPORT4, BOARD_LED1); + chThdSleepMilliseconds(1000); + } +} + +/* + * Application entry point. + */ +int main(void) { + + /* + * System initializations. + * - HAL initialization, this also initializes the configured device drivers + * and performs the board-specific initializations. + * - Kernel initialization, the main() function becomes a thread and the + * RTOS is active. + */ + halInit(); + chSysInit(); + + palSetPadMode(IOPORT4, BOARD_LED1, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(IOPORT4, BOARD_LED1); + + /* + * Initializes a serial-over-USB CDC driver. + */ + sduObjectInit(&SDU1); + sduStart(&SDU1, &serusbcfg); + + /* + * Activates the USB driver and then the USB bus pull-up on D+. + * Note, a delay is inserted in order to not have to disconnect the cable + * after a reset. + */ + usbDisconnectBus(serusbcfg.usbp); + chThdSleepMilliseconds(1000); + usbStart(serusbcfg.usbp, &usbcfg); + usbConnectBus(serusbcfg.usbp); + + /* + * Starts the LED blinker thread. + */ + chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); + + while(TRUE) { + if (SDU1.config->usbp->state == USB_ACTIVE) { + chnWrite(&SDU1, (const uint8_t *)"Hello World!\r\n", 14); + } + chThdSleepMilliseconds(2000); + } +} |