Files
@ 6982c8ddef15
Branch filter:
Location: therm/main.c
6982c8ddef15
2.8 KiB
text/plain
Add graphics lib
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | #include "main.h"
#include "stm32l100c_discovery.h"
#include "Libraries/u8glib/u8g_arm.h"
static __IO uint32_t TimingDelay;
uint8_t BlinkSpeed = 0;
/* Setup periphs / etc */
void setup() {
RCC_ClocksTypeDef RCC_Clocks;
/* Configure LED3 and LED4 on STM32L100C-Discovery */
STM_EVAL_LEDInit(LED3);
STM_EVAL_LEDInit(LED4);
/* Initialize User_Button on STM32L100C-Discovery */
STM_EVAL_PBInit(BUTTON_USER, BUTTON_MODE_GPIO);
/* SysTick end of count event each 1ms */
RCC_GetClocksFreq(&RCC_Clocks);
SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000);
}
/* Main */
int main(void)
{
/* Initiate Blink Speed variable */
BlinkSpeed = 1;
while(1)
{
/* Check if the user button is pressed */
if(STM_EVAL_PBGetState(BUTTON_USER)== SET)
{
/* BlinkSpeed: 1 -> 2 -> 0, then re-cycle */
/* Turn on LD4 Blue LED during 1s each time User button is pressed */
STM_EVAL_LEDOn(LED4);
/* wait for 1s */
Delay(1000);
/* Turn off LD4 Blue LED after 1s each time User button is pressed */
STM_EVAL_LEDOff(LED4);
/* Increment the blink speed counter */
BlinkSpeed++;
/* Default value for blink speed counter */
if(BlinkSpeed == 3)
{
BlinkSpeed = 0;
}
}
/* Test on blink speed */
if(BlinkSpeed == 2)
{
/* LED3 toggles each 100 ms */
STM_EVAL_LEDToggle(LED3);
/* maintain LED3 status for 100ms */
Delay(100);
}
else if(BlinkSpeed == 1)
{
/* LED3 toggles each 200 ms */
STM_EVAL_LEDToggle(LED3);
/* maintain LED3 status for 200ms */
Delay(200);
}
else
{
/* LED3 Off */
STM_EVAL_LEDOff(LED3);
}
}
}
/**
* @brief Inserts a delay time.
* @param nTime: specifies the delay time length, in 1 ms.
* @retval None
*/
void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0);
}
/**
* @brief Decrements the TimingDelay variable.
* @param None
* @retval None
*/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t* file, uint32_t line)
{
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* Infinite loop */
while (1)
{}
}
#endif
|