diff --git a/demos/ARMCM3-STM32F103-GCC/Makefile b/demos/ARMCM3-STM32F103-GCC/Makefile index eb957c072..0fa07c91a 100644 --- a/demos/ARMCM3-STM32F103-GCC/Makefile +++ b/demos/ARMCM3-STM32F103-GCC/Makefile @@ -66,6 +66,7 @@ CSRC = ../../ports/ARMCM3/chcore.c \ ../../ports/ARMCM3-STM32F103/stm32_serial.c \ ${KERNSRC} \ ${TESTSRC} \ + ../../src/lib/pal.c \ ../../src/lib/evtimer.c \ board.c main.c diff --git a/demos/ARMCM3-STM32F103-GCC/main.c b/demos/ARMCM3-STM32F103-GCC/main.c index f89131d37..f599c3e73 100644 --- a/demos/ARMCM3-STM32F103-GCC/main.c +++ b/demos/ARMCM3-STM32F103-GCC/main.c @@ -24,6 +24,8 @@ #include "board.h" #include "stm32_serial.h" +static IOBUS_DECL(LedBus, IOPORT_C, 1, GPIOC_LED); + /* * Red LEDs blinker thread, times are in milliseconds. */ @@ -35,6 +37,30 @@ static msg_t Thread1(void *arg) { chThdSleepMilliseconds(500); palSetPad(IOPORT_C, GPIOC_LED); chThdSleepMilliseconds(500); + palTogglePad(IOPORT_C, GPIOC_LED); + chThdSleepMilliseconds(500); + palTogglePad(IOPORT_C, GPIOC_LED); + chThdSleepMilliseconds(500); + palWritePad(IOPORT_C, GPIOC_LED, PAL_LOW); + chThdSleepMilliseconds(500); + palWritePad(IOPORT_C, GPIOC_LED, PAL_HIGH); + chThdSleepMilliseconds(500); + palWriteGroup(IOPORT_C, 1, GPIOC_LED, PAL_LOW); + chThdSleepMilliseconds(500); + palWriteGroup(IOPORT_C, 1, GPIOC_LED, PAL_HIGH); + chThdSleepMilliseconds(500); + palClearPort(IOPORT_C, PAL_PORT_BIT(GPIOC_LED)); + chThdSleepMilliseconds(500); + palSetPort(IOPORT_C, PAL_PORT_BIT(GPIOC_LED)); + chThdSleepMilliseconds(500); + palTogglePort(IOPORT_C, PAL_PORT_BIT(GPIOC_LED)); + chThdSleepMilliseconds(500); + palTogglePort(IOPORT_C, PAL_PORT_BIT(GPIOC_LED)); + chThdSleepMilliseconds(500); + palWriteBus(&LedBus, PAL_LOW); + chThdSleepMilliseconds(500); + palWriteBus(&LedBus, PAL_HIGH); + chThdSleepMilliseconds(500); } return 0; } diff --git a/docs/src/main.dox b/docs/src/main.dox index 24d7acda1..3a38d7115 100644 --- a/docs/src/main.dox +++ b/docs/src/main.dox @@ -358,7 +358,7 @@ * @defgroup PAL I/O Ports Abstraction Layer (PAL) * @brief I/O Ports Abstraction Layer * @details This module defines an abstract interface for digital I/O ports. - * Note that I/O ports functions are just a set of macros. The macros + * Note that most I/O ports functions are just macros. The macros * have default software implementations that can be redefined in a * @ref PAL_LLD if the target hardware supports special features like, as * example, atomic bit set/reset/masking. Please refer to the ports specific diff --git a/src/templates/pal_lld.h b/src/templates/pal_lld.h index d9e492c0b..246ab8d9f 100644 --- a/src/templates/pal_lld.h +++ b/src/templates/pal_lld.h @@ -19,7 +19,7 @@ /** * @file src/templates/pal_lld.h - * @brief @ref PAL subsystem low level driver template + * @brief PAL subsystem low level driver template * @addtogroup PAL_LLD * @{ */