Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions Example_TIM_CLK/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ void TIM4_IRQHandler(void)
{
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)
{
// ����'������ ������� ������. ���� ����� �� �������, ���� ������� ����������� ����� �������� ����
// Îáîâ'ÿçêîâî ñêèäàºìî ïðàïîð. ßêùî öüîãî íå çðîáèòè, ï³ñëÿ îáðîáêè ïåðåðèâàííÿ çíîâó ïîïàäåìî ñþäè
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
GPIOC->ODR ^= GPIO_Pin_13;
}
Expand All @@ -77,17 +77,26 @@ int main(void)
TIM_TimeBaseInitTypeDef TIMER_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); // ������� ���������� ������� TIM4
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); // Âìèêàºìî òàêòóâàííÿ òàéìåðà TIM4

TIM_TimeBaseStructInit(&TIMER_InitStructure);
TIMER_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; // ����� �������
TIMER_InitStructure.TIM_Prescaler = 8000; // �������� ������� ��� �������
// ����� �� ����������� �� ����������� ��������� RCC_HCLKConfig( RCC_SYSCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div1);
// � ������ ������� ������ = RCC_SYSCLK_Div1, ����� �� ��������� ������� �������� ������� ����������� ������ (8���)
TIMER_InitStructure.TIM_Period = 500; // �����, ����� ���� ���������� ����������� �� ������������ // F=8000000/8000/500 = 2 ����/���.
TIMER_InitStructure.TIM_CounterMode = TIM_CounterMode_Up; // Ðåæèì ðàõóíêó
TIMER_InitStructure.TIM_Prescaler = 8000; // Ïîä³ëþâà÷ ÷àñòîòè äëÿ òàéìåðà
// Òðåáà ùå âðàõîâóâàòè ÿê íàëàøòîâàí³ ïîä³ëþâà÷³ RCC_HCLKConfig( RCC_SYSCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div1);
// Ó íàøîìó âèïàäêó îáèäâà = RCC_SYSCLK_Div1, òîáòî äî ïîä³ëþâà÷à òàéìåðà äîõîäèòü ÷àñòîòà çîâí³øíüîãî êâàðöó (8ÌÃö)
TIMER_InitStructure.TIM_Period = 500; // Ïåð³îä, ÷åðåç ÿêèé âèêîíóºòüñÿ ïåðåðèâàííÿ ïî ïåðåïîâíåííþ // F=8000000/8000/500 = 2 ðàçè/ñåê.
TIM_TimeBaseInit(TIM4, &TIMER_InitStructure);
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); // ������� ����������� �� ������������ �������
TIM_Cmd(TIM4, ENABLE);// ������� ������

/*
This next line needs to be put here!!!
That's why the TIM_TimeBaseInit(TIM2, &TIMER_InitStructure); line sets the UIF flag
We are clearing it!!!
*/

TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE); // Âìèêàºìî ïåðåðèâàííÿ ïî ïåðåïîâíåííþ òàéìåðà
TIM_Cmd(TIM4, ENABLE);// Âìèêàºìî òàéìåð

/* NVIC Configuration */
/* Enable the TIM4_IRQn Interrupt */
Expand All @@ -99,6 +108,6 @@ int main(void)

while(1)
{
// � ��������� ���� ������ �� ��� ����������.
// Ó ãîëîâíîìó öèêë³ ðîáèìî ùî íàì çàìàíåòüñÿ.
}
}
Loading