diff --git a/examples/stm32/f4/stm32f4-disco/systick-blink/Makefile b/examples/stm32/f4/stm32f4-disco/systick-blink/Makefile deleted file mode 100644 index 0aba9ea..0000000 --- a/examples/stm32/f4/stm32f4-disco/systick-blink/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# -# This file is part of the libopencm3 project. -# -# This library is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this library. If not, see . -# - -BINARY = systick-blink - -LDSCRIPT = ../stm32f4-disco.ld - -include ../../Makefile.include diff --git a/examples/stm32/f4/stm32f4-disco/systick-blink/README b/examples/stm32/f4/stm32f4-disco/systick-blink/README deleted file mode 100644 index 3352d95..0000000 --- a/examples/stm32/f4/stm32f4-disco/systick-blink/README +++ /dev/null @@ -1,7 +0,0 @@ -Systick Blink -------------- - -This version of blink is slightly more sophisticated, it shows how you -can initialize the Cortex M SYSTICK register to give a regular interrupt. -It adds a function for doing precise delays. The original blink code -is then rewritten with this in mind to create a 10Hz blinking pattern. diff --git a/examples/stm32/f4/stm32f4-disco/systick-blink/systick-blink.c b/examples/stm32/f4/stm32f4-disco/systick-blink/systick-blink.c deleted file mode 100644 index 7a9ebd4..0000000 --- a/examples/stm32/f4/stm32f4-disco/systick-blink/systick-blink.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * This file is part of the libopencm3 project. - * - * Copyright (C) 2013 Chuck McManis - * - * This library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library. If not, see . - */ - -/* This version derived from fancy blink */ - -#include -#include -#include -#include - -/* - * Definitions for functions being abstracted out - */ -void msleep(uint32_t); -void clock_setup(void); - -/* monotonically increasing number of milliseconds from reset - * overflows every 49 days if you're wondering - */ -volatile uint32_t system_millis; - -/* Called when systick fires */ -void sys_tick_handler(void) { - system_millis++; -} - -/* sleep for delay milliseconds */ -void msleep(uint32_t delay) { - uint32_t wake = system_millis + delay; - while (wake > system_millis) ; -} - - -/* - * clock_setup(void) - * - * This function sets up both the base board clock rate - * and a 1khz "system tick" count. The SYSTICK counter is - * a standard feature of the Cortex-M series. - */ -void clock_setup(void) -{ - /* Base board frequency, set to 168Mhz */ - rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]); - - /* clock rate / 168000 to get 1mS interrupt rate */ - systick_set_reload(168000); - systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); - systick_counter_enable(); - - /* this done last */ - systick_interrupt_enable(); -} - -int main(void) -{ - /* Set up clock and systick */ - clock_setup(); - - /* Enable GPIOD clock. */ - rcc_periph_clock_enable(RCC_GPIOG); - - /* Set GPIO13-14 (in GPIO port G) to 'output push-pull'. */ - gpio_mode_setup(GPIOG, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO13 | GPIO14); - - /* Set LED for alternating effect when toggling. */ - gpio_set(GPIOG, GPIO13); - - /* Blink the LEDs (PD12, PD13, PD14 and PD15) on the board. */ - while (1) { - gpio_toggle(GPIOG, GPIO13 | GPIO14); - /* Now sleep for 100ms which toggles at 10hz rate */ - msleep(100); - } - - return 0; -} diff --git a/examples/stm32/f4/stm32f429i-discovery/tick_blink/tick_blink.c b/examples/stm32/f4/stm32f429i-discovery/tick_blink/tick_blink.c index bb0f061..acab919 100644 --- a/examples/stm32/f4/stm32f429i-discovery/tick_blink/tick_blink.c +++ b/examples/stm32/f4/stm32f429i-discovery/tick_blink/tick_blink.c @@ -46,7 +46,12 @@ static void msleep(uint32_t delay) while (wake > system_millis); } -/* Set up a timer to create 1mS ticks. */ +/* + * systick_setup(void) + * + * This function sets up the 1khz "system tick" count. The SYSTICK counter is a + * standard feature of the Cortex-M series. + */ static void systick_setup(void) { /* clock rate / 1000 to get 1mS interrupt rate */ @@ -57,7 +62,7 @@ static void systick_setup(void) systick_interrupt_enable(); } -/* Set STM32 to 168 MHz. */ +/* Set STM32 system clock to 168 MHz. */ static void clock_setup(void) { rcc_clock_setup_hse_3v3(&hse_8mhz_3v3[CLOCK_3V3_168MHZ]);