Witam, uczę się programowania mikrokontrolerów STM32F103.. Mam za zadanie:
Zmodyfikować sposób migotania diody LED tak aby zaświeciła się ona na czas 100 ms w odstępach co 1 s;
Zrealizować na pozostałych diodach LED licznik programowy, czterobitowy zliczający w górę z częstotliwością 0,5 Hz w kodzie binarnym.
Nie wiem o co chodzi z tym licznikiem, od czego zacząć. Będę wdzięczny jeśli ktoś mnie naprowadzi.
Podkreślam, że dopiero zaczynam zabawę z STMem. :D
Mój kod:
#include "stm32f10x.h"
volatile uint32_t a=0;
void SysTick_Handler (void)
{
if(a)
{
a--;
}
}
void delay(int time)
{
a=time;
while(a>0);
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitTypeDef led;
led.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|
GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
led.GPIO_Mode=GPIO_Mode_Out_PP;
led.GPIO_Speed=GPIO_Speed_2MHz;
//led.GPIO_Pin=GPIO_Pin_All;
GPIO_Init(GPIOC,&led);
SysTick_Config(SystemCoreClock/1000);
/*
*/
//SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
while(1)
{
if(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_1)==1)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_1);
delay(1000);
}else
{
GPIO_SetBits(GPIOC, GPIO_Pin_1);
delay(100);
}
}
}