aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Otto2010-05-02 20:28:51 +0200
committerThomas Otto2010-05-02 20:28:51 +0200
commitffcf53ef00389aca1b2420ee40fb80b809570046 (patch)
treeb5dc40fa11434eb71f07deedde8fd6000758f84f
parent4f272b4ad4c89bef659bd253616129d2cab2c6bd (diff)
Make examples/other make use of new clock setup.
-rw-r--r--examples/other/adc_temperature_sensor/adc.c43
-rw-r--r--examples/other/dma_mem2mem/dma.c43
-rw-r--r--examples/other/dogm128/main.c43
-rw-r--r--examples/other/i2c_stts75_sensor/i2c_stts75_sensor.c8
-rw-r--r--examples/other/systick/systick.c43
-rw-r--r--examples/other/timer_interrupt/timer.c44
6 files changed, 6 insertions, 218 deletions
diff --git a/examples/other/adc_temperature_sensor/adc.c b/examples/other/adc_temperature_sensor/adc.c
index 0353f44..be89225 100644
--- a/examples/other/adc_temperature_sensor/adc.c
+++ b/examples/other/adc_temperature_sensor/adc.c
@@ -23,47 +23,6 @@
#include <libopenstm32/usart.h>
#include <libopenstm32/adc.h>
-/* Set STM32 to 72 MHz. HSE 16MHz */
-void clock_setup(void)
-{
- /* enable Internal High Speed Oscillator */
- rcc_osc_on(HSI);
- rcc_wait_for_osc_ready(HSI);
-
- /* Select HSI as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSICLK);
-
- /* enable External High Speed Oscillator 16MHz */
- rcc_osc_on(HSE);
- rcc_wait_for_osc_ready(HSE);
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSECLK);
-
- /* set prescalers for ADC, ABP1, ABP2... make this before touching the PLL */
- rcc_set_hpre(HPRE_SYSCLK_NODIV); //prescales the AHB clock from the SYSCLK
- rcc_set_adcpre(ADCPRE_PLCK2_DIV6); //prescales the ADC from the APB2 clock; max 14MHz
- rcc_set_ppre1(PPRE1_HCLK_DIV2); //prescales the APB1 from the AHB clock; max 36MHz
- rcc_set_ppre2(PPRE2_HCLK_NODIV); //prescales the APB2 from the AHB clock; max 72MHz
-
- /* sysclk should run with 72MHz -> 2 Waitstates ; choose 0WS from 0-24MHz, 1WS from 24-48MHz, 2WS from 48-72MHz */
- flash_set_ws(FLASH_LATENCY_2WS);
-
- /* Set the PLL multiplication factor to 9. -> 16MHz (external) * 9 (multiplier) / 2 (PLLXTPRE_HSE_CLK_DIV2) = 72MHz */
- rcc_set_pll_multiplication_factor(PLLMUL_PLL_CLK_MUL9);
-
- /* Select HSI as PLL source. */
- rcc_set_pll_source(PLLSRC_HSE_CLK);
-
- /* divide external frequency by 2 before entering pll (only valid/needed for HSE) */
- rcc_set_pllxtpre(PLLXTPRE_HSE_CLK_DIV2);
-
- /* Enable PLL oscillator and wait for it to stabilize. */
- rcc_osc_on(PLL);
- rcc_wait_for_osc_ready(PLL);
-
- /* Select PLL as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_PLLCLK);
-}
-
void usart_setup(void)
{
/* Enable clocks for GPIO port A (for GPIO_USART1_TX) and USART1. */
@@ -150,7 +109,7 @@ int main(void)
u8 channel_array[16];
u16 temperature;
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
usart_setup();
adc_setup();
diff --git a/examples/other/dma_mem2mem/dma.c b/examples/other/dma_mem2mem/dma.c
index 98c360d..726687c 100644
--- a/examples/other/dma_mem2mem/dma.c
+++ b/examples/other/dma_mem2mem/dma.c
@@ -23,47 +23,6 @@
#include <libopenstm32/usart.h>
#include <libopenstm32/dma.h>
-/* Set STM32 to 72 MHz. HSE 16MHz */
-void clock_setup(void)
-{
- /* enable Internal High Speed Oscillator */
- rcc_osc_on(HSI);
- rcc_wait_for_osc_ready(HSI);
-
- /* Select HSI as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSICLK);
-
- /* enable External High Speed Oscillator 16MHz */
- rcc_osc_on(HSE);
- rcc_wait_for_osc_ready(HSE);
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSECLK);
-
- /* set prescalers for ADC, ABP1, ABP2... make this before touching the PLL */
- rcc_set_hpre(HPRE_SYSCLK_NODIV); //prescales the AHB clock from the SYSCLK
- rcc_set_adcpre(ADCPRE_PLCK2_DIV6); //prescales the ADC from the APB2 clock; max 14MHz
- rcc_set_ppre1(PPRE1_HCLK_DIV2); //prescales the APB1 from the AHB clock; max 36MHz
- rcc_set_ppre2(PPRE2_HCLK_NODIV); //prescales the APB2 from the AHB clock; max 72MHz
-
- /* sysclk should run with 72MHz -> 2 Waitstates ; choose 0WS from 0-24MHz, 1WS from 24-48MHz, 2WS from 48-72MHz */
- flash_set_ws(FLASH_LATENCY_2WS);
-
- /* Set the PLL multiplication factor to 9. -> 16MHz (external) * 9 (multiplier) / 2 (PLLXTPRE_HSE_CLK_DIV2) = 72MHz */
- rcc_set_pll_multiplication_factor(PLLMUL_PLL_CLK_MUL9);
-
- /* Select HSI as PLL source. */
- rcc_set_pll_source(PLLSRC_HSE_CLK);
-
- /* divide external frequency by 2 before entering pll (only valid/needed for HSE) */
- rcc_set_pllxtpre(PLLXTPRE_HSE_CLK_DIV2);
-
- /* Enable PLL oscillator and wait for it to stabilize. */
- rcc_osc_on(PLL);
- rcc_wait_for_osc_ready(PLL);
-
- /* Select PLL as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_PLLCLK);
-}
-
void usart_setup(void)
{
/* Enable clocks for GPIO port A (for GPIO_USART1_TX) and USART1. */
@@ -113,7 +72,7 @@ int main(void)
char s1[20] = "Hello STM MEM2MEM\r\n";
char s2[20];
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
usart_setup();
diff --git a/examples/other/dogm128/main.c b/examples/other/dogm128/main.c
index 4fe2197..f9453bb 100644
--- a/examples/other/dogm128/main.c
+++ b/examples/other/dogm128/main.c
@@ -26,47 +26,6 @@
#include <libopenstm32/spi.h>
#include "./dogm128.h"
-/* Set STM32 to 72 MHz. HSE 16MHz */
-void clock_setup(void)
-{
- /* enable Internal High Speed Oscillator */
- rcc_osc_on(HSI);
- rcc_wait_for_osc_ready(HSI);
-
- /* Select HSI as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSICLK);
-
- /* enable External High Speed Oscillator 16MHz */
- rcc_osc_on(HSE);
- rcc_wait_for_osc_ready(HSE);
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSECLK);
-
- /* set prescalers for ADC, ABP1, ABP2... make this before touching the PLL */
- rcc_set_hpre(HPRE_SYSCLK_NODIV); //prescales the AHB clock from the SYSCLK
- rcc_set_adcpre(ADCPRE_PLCK2_DIV6); //prescales the ADC from the APB2 clock; max 14MHz
- rcc_set_ppre1(PPRE1_HCLK_DIV2); //prescales the APB1 from the AHB clock; max 36MHz
- rcc_set_ppre2(PPRE2_HCLK_NODIV); //prescales the APB2 from the AHB clock; max 72MHz
-
- /* sysclk should run with 72MHz -> 2 Waitstates ; choose 0WS from 0-24MHz, 1WS from 24-48MHz, 2WS from 48-72MHz */
- flash_set_ws(FLASH_LATENCY_2WS);
-
- /* Set the PLL multiplication factor to 9. -> 16MHz (external) * 9 (multiplier) / 2 (PLLXTPRE_HSE_CLK_DIV2) = 72MHz */
- rcc_set_pll_multiplication_factor(PLLMUL_PLL_CLK_MUL9);
-
- /* Select HSI as PLL source. */
- rcc_set_pll_source(PLLSRC_HSE_CLK);
-
- /* divide external frequency by 2 before entering pll (only valid/needed for HSE) */
- rcc_set_pllxtpre(PLLXTPRE_HSE_CLK_DIV2);
-
- /* Enable PLL oscillator and wait for it to stabilize. */
- rcc_osc_on(PLL);
- rcc_wait_for_osc_ready(PLL);
-
- /* Select PLL as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_PLLCLK);
-}
-
void gpio_setup(void)
{
/* Enable GPIOB clock. */
@@ -116,7 +75,7 @@ void spi_setup()
int main(void)
{
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
spi_setup();
diff --git a/examples/other/i2c_stts75_sensor/i2c_stts75_sensor.c b/examples/other/i2c_stts75_sensor/i2c_stts75_sensor.c
index 748e12b..fe70f8f 100644
--- a/examples/other/i2c_stts75_sensor/i2c_stts75_sensor.c
+++ b/examples/other/i2c_stts75_sensor/i2c_stts75_sensor.c
@@ -24,12 +24,6 @@
#include <libopenstm32/i2c.h>
#include "stts75.h"
-/* Set STM32 to 72 MHz. */
-void clock_setup(void)
-{
- rcc_clock_setup_in_hse_8mhz_out_72mhz();
-}
-
void usart_setup(void)
{
/* Enable clocks for GPIO port A (for GPIO_USART1_TX) and USART1. */
@@ -113,7 +107,7 @@ int main(void)
int i = 0;
u16 temperature;
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
usart_setup();
i2c_setup();
diff --git a/examples/other/systick/systick.c b/examples/other/systick/systick.c
index 1f1153b..329218b 100644
--- a/examples/other/systick/systick.c
+++ b/examples/other/systick/systick.c
@@ -25,47 +25,6 @@
u32 temp32;
-/* Set STM32 to 72 MHz. HSE 16MHz */
-void clock_setup(void)
-{
- /* enable Internal High Speed Oscillator */
- rcc_osc_on(HSI);
- rcc_wait_for_osc_ready(HSI);
-
- /* Select HSI as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSICLK);
-
- /* enable External High Speed Oscillator 16MHz */
- rcc_osc_on(HSE);
- rcc_wait_for_osc_ready(HSE);
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSECLK);
-
- /* set prescalers for ADC, ABP1, ABP2... make this before touching the PLL */
- rcc_set_hpre(HPRE_SYSCLK_NODIV); //prescales the AHB clock from the SYSCLK
- rcc_set_adcpre(ADCPRE_PLCK2_DIV6); //prescales the ADC from the APB2 clock; max 14MHz
- rcc_set_ppre1(PPRE1_HCLK_DIV2); //prescales the APB1 from the AHB clock; max 36MHz
- rcc_set_ppre2(PPRE2_HCLK_NODIV); //prescales the APB2 from the AHB clock; max 72MHz
-
- /* sysclk should run with 72MHz -> 2 Waitstates ; choose 0WS from 0-24MHz, 1WS from 24-48MHz, 2WS from 48-72MHz */
- flash_set_ws(FLASH_LATENCY_2WS);
-
- /* Set the PLL multiplication factor to 9. -> 16MHz (external) * 9 (multiplier) / 2 (PLLXTPRE_HSE_CLK_DIV2) = 72MHz */
- rcc_set_pll_multiplication_factor(PLLMUL_PLL_CLK_MUL9);
-
- /* Select HSI as PLL source. */
- rcc_set_pll_source(PLLSRC_HSE_CLK);
-
- /* divide external frequency by 2 before entering pll (only valid/needed for HSE) */
- rcc_set_pllxtpre(PLLXTPRE_HSE_CLK_DIV2);
-
- /* Enable PLL oscillator and wait for it to stabilize. */
- rcc_osc_on(PLL);
- rcc_wait_for_osc_ready(PLL);
-
- /* Select PLL as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_PLLCLK);
-}
-
void gpio_setup(void)
{
/* Enable GPIOB clock. */
@@ -91,7 +50,7 @@ void sys_tick_handler()
int main(void)
{
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
gpio_clear(GPIOB, GPIO7); /* LED1 on */
diff --git a/examples/other/timer_interrupt/timer.c b/examples/other/timer_interrupt/timer.c
index f88de86..5c9791c 100644
--- a/examples/other/timer_interrupt/timer.c
+++ b/examples/other/timer_interrupt/timer.c
@@ -20,51 +20,9 @@
#include <libopenstm32/rcc.h>
#include <libopenstm32/flash.h>
#include <libopenstm32/gpio.h>
-#include <libopenstm32/usart.h>
#include <libopenstm32/timer.h>
#include <libopenstm32/nvic.h>
-/* Set STM32 to 72 MHz. HSE 16MHz */
-void clock_setup(void)
-{
- /* enable Internal High Speed Oscillator */
- rcc_osc_on(HSI);
- rcc_wait_for_osc_ready(HSI);
-
- /* Select HSI as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSICLK);
-
- /* enable External High Speed Oscillator 16MHz */
- rcc_osc_on(HSE);
- rcc_wait_for_osc_ready(HSE);
- rcc_set_sysclk_source(SW_SYSCLKSEL_HSECLK);
-
- /* set prescalers for ADC, ABP1, ABP2... make this before touching the PLL */
- rcc_set_hpre(HPRE_SYSCLK_NODIV); //prescales the AHB clock from the SYSCLK
- rcc_set_adcpre(ADCPRE_PLCK2_DIV6); //prescales the ADC from the APB2 clock; max 14MHz
- rcc_set_ppre1(PPRE1_HCLK_DIV2); //prescales the APB1 from the AHB clock; max 36MHz
- rcc_set_ppre2(PPRE2_HCLK_NODIV); //prescales the APB2 from the AHB clock; max 72MHz
-
- /* sysclk should run with 72MHz -> 2 Waitstates ; choose 0WS from 0-24MHz, 1WS from 24-48MHz, 2WS from 48-72MHz */
- flash_set_ws(FLASH_LATENCY_2WS);
-
- /* Set the PLL multiplication factor to 9. -> 16MHz (external) * 9 (multiplier) / 2 (PLLXTPRE_HSE_CLK_DIV2) = 72MHz */
- rcc_set_pll_multiplication_factor(PLLMUL_PLL_CLK_MUL9);
-
- /* Select HSI as PLL source. */
- rcc_set_pll_source(PLLSRC_HSE_CLK);
-
- /* divide external frequency by 2 before entering pll (only valid/needed for HSE) */
- rcc_set_pllxtpre(PLLXTPRE_HSE_CLK_DIV2);
-
- /* Enable PLL oscillator and wait for it to stabilize. */
- rcc_osc_on(PLL);
- rcc_wait_for_osc_ready(PLL);
-
- /* Select PLL as SYSCLK source. */
- rcc_set_sysclk_source(SW_SYSCLKSEL_PLLCLK);
-}
-
void gpio_setup(void)
{
/* Enable GPIOB clock. */
@@ -95,7 +53,7 @@ void tim2_isr()
int main(void)
{
- clock_setup();
+ rcc_clock_setup_in_hse_16mhz_out_72mhz();
gpio_setup();
nvic_setup();