/* Includes */ #include <stddef.h> #include \"stm32f10x.h\" #include \"STM32vldi
ID: 1812675 • Letter: #
Question
/* Includes */
#include <stddef.h>
#include "stm32f10x.h"
#include "STM32vldiscovery.h"
void Delay(__IO uint32_t nCount);
int main(void)
{
STM32vldiscovery_LEDInit(LED3);
STM32vldiscovery_LEDInit(LED4);
STM32vldiscovery_PBInit(BUTTON_USER, BUTTON_MODE_GPIO);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOff(LED4);
/* Infinite loop */
while (1)
{
/* Toggle LED3 with delay between states */
STM32vldiscovery_LEDOn(LED3);
STM32vldiscovery_LEDOff(LED4);
Delay(658751);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOn(LED4);
Delay(658751);
}
}
void Delay(__IO uint32_t nCount)
{
for(; nCount != 0; nCount--);
}
Explanation / Answer
/*
* File: main.c
* Date: 2013-02-07
*/
#include <stddef.h>
#include "stm32f10x.h"
#include "STM32vldiscovery.h"
static __IO uint32_t TimingDelay;
void Delay(uint32_t nTime);
void TimingDelay_Decrement(void);
//-----------------------------------------------------------------------------
int main(void)
{
STM32vldiscovery_PBInit(BUTTON_USER, BUTTON_MODE_GPIO);
STM32vldiscovery_LEDInit(LED3);
STM32vldiscovery_LEDInit(LED4);
STM32vldiscovery_LEDOff(LED3); // Off Green Led
STM32vldiscovery_LEDOff(LED4); // Off Blue Led
int count = 0;
int delay_n = 600000;
while (1)
{
if (0 == STM32vldiscovery_PBGetState(BUTTON_USER))
{
switch(count) {
case 0:
Delay(delay_n);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n);
STM32vldiscovery_LEDOff(LED3);
case 1:
Delay(delay_n - 100000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 100000);
STM32vldiscovery_LEDOff(LED3);
break;
case 2:
Delay(delay_n - 200000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 200000);
STM32vldiscovery_LEDOff(LED3);
break;
case 3:
Delay(delay_n - 300000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 300000);
STM32vldiscovery_LEDOff(LED3);
break;
case 4:
Delay(delay_n - 400000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 400000);
STM32vldiscovery_LEDOff(LED3);
break;
case 5:
Delay(delay_n - 500000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 500000);
STM32vldiscovery_LEDOff(LED3);
break;
case 6:
Delay(delay_n - 540000);
STM32vldiscovery_LEDOn(LED3);
Delay(delay_n - 540000);
STM32vldiscovery_LEDOff(LED3);
break;
case 7:
count = 0;
break;
}
Delay(60000);
STM32vldiscovery_LEDOn(LED4);
Delay(30000);
STM32vldiscovery_LEDOff(LED4);
} else {
STM32vldiscovery_LEDOn(LED4);
Delay(delay_n);
STM32vldiscovery_LEDOff(LED4);
count++;
}
}
return 0;
}
void Delay(uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0) { TimingDelay--; }
}
// this is simpler to understand
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.