Jump to content

Search the Community

Showing results for tags 'TIM2'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Автомобильная электроника
    • Питание
    • Ремонт
    • Системы охраны и наблюдения. Личная безопасность
    • Роботы и модели на ДУ-управлении
    • Световые эффекты и LED
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Металлоискатели
    • Автоматика
    • Электрика
    • Промышленная электроника
    • Измерительная техника
    • Мастерская радиолюбителя
    • КВ и УКВ радиосвязь
    • Жучки
    • Сотовая связь
    • Спутниковое ТВ
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Схемотехника для профессионалов
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 2 results

  1. Сделал два прерывания на кнопку и на таймер. Нажатие кнопки прекрасно обрабатывается. А вот с таймером проблемы. Решил потетстить свою настройку RCC, т.к. она не хочет работать корректно, ну или мне так кажется, но наткнулся еще на одну проблему. Код: void exti_init() { RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; SYSCFG->EXTICR[3] |= SYSCFG_EXTICR1_EXTI0_PA; EXTI->RTSR |= EXTI_RTSR_TR0; EXTI->PR = EXTI_PR_PR0; EXTI->IMR |= EXTI_IMR_MR0; NVIC_EnableIRQ( EXTI0_IRQn ); NVIC_SetPriority( EXTI0_IRQn, 14 ); // NVIC_EnableIRQ ( RCC_IRQn ); // NVIC_SetPriority( RCC_IRQn, 10 ); __enable_irq(); } void RCC_Init(void ) { SET_BIT( RCC->CR, RCC_CR_HSEON ); while ( READ_BIT( RCC->CR, RCC_CR_HSERDY == RESET ) ); FLASH->ACR = FLASH_ACR_PRFTEN | FLASH_ACR_LATENCY_0WS; SET_BIT( RCC->PLLCFGR, RCC_PLLCFGR_PLLM_2 ); SET_BIT( RCC->PLLCFGR, RCC_PLLCFGR_PLLM_3 ); SET_BIT( RCC->PLLCFGR, RCC_PLLCFGR_PLLN_5 ); SET_BIT( RCC->PLLCFGR, RCC_PLLCFGR_PLLN_6 ); SET_BIT( RCC->PLLCFGR, ~RCC_PLLCFGR_PLLP_Pos ); SET_BIT( RCC->CFGR, RCC_CFGR_PPRE2_DIV1 ); SET_BIT( RCC->CFGR, RCC_CFGR_PPRE1_DIV2 ); SET_BIT( RCC->CFGR, RCC_CFGR_HPRE_DIV1 ); SET_BIT( RCC->CR, RCC_CR_PLLON ); while ( READ_BIT( RCC->CR, RCC_CR_PLLRDY == RESET ) ); SET_BIT( RCC->CFGR, RCC_CFGR_SW_PLL ); while ( READ_BIT( RCC->CR, RCC_CFGR_SWS_1 == RESET ) ); } GPIO_init(void ) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; GPIOC->MODER |= GPIO_MODER_MODER13_0; GPIOA->MODER &= ~GPIO_MODER_MODER0_0; GPIOA->MODER &= ~GPIO_MODER_MODER0_1; SET_BIT( GPIOA->PUPDR, GPIO_PUPDR_PUPD0_0 ); } TIM2_init(void){ RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; TIM2->PSC = 8000-1; TIM2->ARR = 1000-1; TIM2->DIER |= TIM_DIER_UDE; TIM2->CR1 |= TIM_CR1_CEN; NVIC_EnableIRQ(TIM2_IRQn); NVIC_SetPriority(TIM2_IRQn, 13); } int main( void ) { // RCC_Init(); GPIO_init(); TIM2_init(); exti_init(); while ( 1 ) { } } void RCC_IRQHandler() { } void EXTI0_IRQHandler( void ) { if ( EXTI->PR & EXTI_PR_PR0 ) { EXTI->PR = EXTI_PR_PR0; GPIOC->ODR ^= GPIO_ODR_ODR_13; } } void TIM2_IRQHandler(void) { TIM2->SR = TIM_SR_UIF; GPIOC->ODR ^= GPIO_ODR_ODR_13; }
  2. Здравствуйте обитатели форума, вернулся к кодингу и на форум после лет 12 паузы. взялся за STM8 перед тем как штурмовть стм32 там уже получил по лбу когда-то и откотился. суть вопроса сконфигурировал второй таймер. второй канал на кристале STM8S103F3 как ШИМ1 всё класно работает гордость за не напрасно потраченное время на дробления RM0016. наступил момент написания библиотеки для удобности обращения с шимом и тут началась эпопея: Сначала как посчитать что загрузить чтобы получить желаемую частоту, потом проверка всё на осциллограммах и тут на меня приходит озарение что наверное что то не так, временные интервалы до частоты 122Hz рросчитываются и совпадают. А после просто треш : тактовая частота HSI 16 000 000 без делителей прямо на вход таймера. PSCR =0; ARR=65535; Fout=244Hz PSCR =1; ARR=65535; Fout=121Hz PSCR =2; ARR=65535; Fout=60Hz PSCR =3; ARR=65535; Fout=30Hz PSCR =4; ARR=65535; Fout=15Hz PSCR =5; ARR=65535; Fout=7,59Hz PSCR =6; ARR=65535; Fout=3,8Hz PSCR =7; ARR=65535; Fout=1,91Hz PSCR =8; ARR=65535; Fout=0,98Hz Вроде всё гармонично но по факту както у меня не сошлось с расчётами. Там где должно быть 80 там 60. Я понимаю что встроенный генератор не блещет стабтильностью но всё равно что-то с расчётами не так либо я вообще не знаю что делаю не так. Fout= Fтактирования/([PSCR]+1)/([ARR]+1) тз сих выходит: PSCR =8; ARR=65535; Fout=???Hz 16 000 0000/9/65536/=27Hz Что не так? где лыжи не едут? чувствую нужно срочно заказать частотомер для измерения до чёрто знаков дабы невроз не лечить.
×
×
  • Create New...