From ab3e72edaa76d549f42947f1cfd1479545d9341c Mon Sep 17 00:00:00 2001 From: gdisirio Date: Mon, 28 Feb 2011 18:58:07 +0000 Subject: [PATCH] GPT tested. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2780 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/STM32/hal_lld.c | 2 +- testhal/STM32/GPT/main.c | 35 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/os/hal/platforms/STM32/hal_lld.c b/os/hal/platforms/STM32/hal_lld.c index cbbdf1587..7878bb518 100644 --- a/os/hal/platforms/STM32/hal_lld.c +++ b/os/hal/platforms/STM32/hal_lld.c @@ -57,7 +57,7 @@ */ void hal_lld_init(void) { - /* Reset of all the peripherals.*/ + /* Reset of all peripherals.*/ RCC->APB1RSTR = 0xFFFFFFFF; RCC->APB2RSTR = 0xFFFFFFFF; RCC->APB1RSTR = 0; diff --git a/testhal/STM32/GPT/main.c b/testhal/STM32/GPT/main.c index 771434029..6790e5eb0 100644 --- a/testhal/STM32/GPT/main.c +++ b/testhal/STM32/GPT/main.c @@ -21,21 +21,22 @@ #include "hal.h" /* - * Red LEDs blinker thread, times are in milliseconds. + * GPT1 callback. */ -static WORKING_AREA(waThread1, 128); -static msg_t Thread1(void *arg) { +static void gpt1cb(GPTDriver *gptp) { - (void)arg; - while (TRUE) { - palClearPad(IOPORT3, GPIOC_LED); - chThdSleepMilliseconds(500); - palSetPad(IOPORT3, GPIOC_LED); - chThdSleepMilliseconds(500); - } - return 0; + (void)gptp; + palTogglePad(IOPORT3, GPIOC_LED); } +/* + * GPT1 configuration. + */ +static const GPTConfig gpt1cfg = { + 10000, /* 10KHz timer clock.*/ + gpt1cb /* Timer callback.*/ +}; + /* * Application entry point. */ @@ -51,21 +52,19 @@ int main(void) { halInit(); chSysInit(); - /* - * Creates the blinker thread. - */ - chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL); - /* * Initializes the GPT driver 1. */ -// gptStart(&GPTD1, &pwmcfg); + gptStart(&GPTD1, &gpt1cfg); /* * Normal main() thread activity, in this demo it does nothing. */ while (TRUE) { - chThdSleepMilliseconds(500); + gptStartContinuous(&GPTD1, 5000); + chThdSleepMilliseconds(5000); + gptStartContinuous(&GPTD1, 2500); + chThdSleepMilliseconds(5000); } return 0; }