реклама на сайте
подробности

 
 
> Таймер stm32f103ve, настройка частоты
GMVM
сообщение Mar 7 2011, 13:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 4-07-10
Пользователь №: 58 276



Здравствуйте! Пытаюсь настроить таймер чтобы мигать светодиодом 1 раз в секунду . Сейчас стоит макс делитель PSC=0xFFFF, диод включается, но горит тускло...т.е по сути мигает с большой частотой. Что делаю не так?

CODE

#include "stm32f10x.h"
#include "stm32f10x_usart.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_conf.h"
#include "stdio.h"
#include "delay.h"

void TIM2_IRQHandler(void);
char i=0;
int main( void)
{

RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;

TIM2->PSC = TIM_PSC_PSC;
TIM2->ARR = TIM_ARR_ARR;
TIM2->CR1 |= TIM_CR1_URS;
TIM2->CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE;
TIM2->DIER |= TIM_DIER_UIE ;
GPIOB->CRL &= ~(GPIO_CRL_MODE5 | GPIO_CRL_CNF5);
GPIOB->CRL |= GPIO_CRL_MODE5_0;
NVIC_SetPriority(TIM2_IRQn,15);
NVIC_EnableIRQ(TIM2_IRQn);
while(1)
{}
}

//------------------------------------------------------------------------------
void TIM2_IRQHandler(void)
{

if(i)
{
GPIOB->BSRR = GPIO_BSRR_BS5;
i=0;

}
else
{
GPIOB->BSRR = GPIO_BSRR_BR5;
i=1;
}
}
//------------------------------------------------------------------------------


Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016