marco 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба Доброго дня. STM32F207 // Настраиваю TIM2 (32bits), работающий напрямую от APB1 (30МГц) TIM_TimeBaseInitTypeDef TIM_InitStructure; TIM_InitStructure.TIM_Prescaler = 0x0000; TIM_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Down; TIM_InitStructure.TIM_Period = 0xFFFF; TIM_TimeBaseInit(TIM2, &TIM_InitStructure); TIM_SelectOnePulseMode(TIM2, TIM_OPMode_Repetitive); TIM_ARRPreloadConfig(TIM2, ENABLE); TIM_ClearITPendingBit(TIM2, TIM_IT_Update); TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); NVIC_EnableIRQ(TIM2_IRQn); // Устанавливаю значение autoreload, равное частоте тактирующего клока (APB1), // т.е. какой бы клок не был, то при условии отсутствия уможителей // период таймера равен 1 с. RCC_ClocksTypeDef rcc_clocks; RCC_GetClocksFreq(&rcc_clocks); TIM_SetAutoreload(TIM2, rcc_clocks.PCLK1_Frequency); TIM_Cmd(TIM2, ENABLE); На деле получаю период 0,5 с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба Если прескейлер на APB равен единице (т.е. APB рабоатет на частоте AHB), то таймеры работают на частоте шины. Если же прескейлер на APB больше единицы, то таймеры работают на удвоенной частоте шины. PS см раздел RCC, Clock tree. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба Если прескейлер на APB равен единице (т.е. APB рабоатет на частоте AHB), то таймеры работают на частоте шины. Если же прескейлер на APB больше единицы, то таймеры работают на удвоенной частоте шины. Т.е. в данном случае, на частоте 60 MHz. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
marco 0 17 декабря, 2012 Опубликовано 17 декабря, 2012 · Жалоба Чёрт возьми, как-то я этот момент пролистал. Зачем так сделали, интересно? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
let's see 0 24 декабря, 2012 Опубликовано 24 декабря, 2012 · Жалоба Т.е. в данном случае, на частоте 60 MHz. Это смотря какой таймер - они на обеих шинах сидят, т.е. может быть и 120МHz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба Чёрт возьми, как-то я этот момент пролистал. Зачем так сделали, интересно? Понятно зачем: чтобы таймер мог работать на максимальной частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба Это смотря какой таймер - они на обеих шинах сидят, т.е. может быть и 120МHz Не может. На частоту шин есть ограничения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
let's see 0 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба Не может. На частоту шин есть ограничения. RM0033 p.48 AHB/APB bridges (APB) The two AHB/APB bridges provide full synchronous connections between the AHB and the two APB buses, allowing flexible selection of the peripheral frequency: ● APB1, limited to 30 MHz for low-speed peripherals ● APB2, limited to 60 MHz for high-speed peripherals stm32f2xx.h /*!< APB1 peripherals */ #define TIM2_BASE (APB1PERIPH_BASE + 0x0000) #define TIM3_BASE (APB1PERIPH_BASE + 0x0400) #define TIM4_BASE (APB1PERIPH_BASE + 0x0800) #define TIM5_BASE (APB1PERIPH_BASE + 0x0C00) #define TIM6_BASE (APB1PERIPH_BASE + 0x1000) #define TIM7_BASE (APB1PERIPH_BASE + 0x1400) #define TIM12_BASE (APB1PERIPH_BASE + 0x1800) #define TIM13_BASE (APB1PERIPH_BASE + 0x1C00) #define TIM14_BASE (APB1PERIPH_BASE + 0x2000) ... /*!< APB2 peripherals */ #define TIM1_BASE (APB2PERIPH_BASE + 0x0000) #define TIM8_BASE (APB2PERIPH_BASE + 0x0400) #define TIM9_BASE (APB2PERIPH_BASE + 0x4000) #define TIM10_BASE (APB2PERIPH_BASE + 0x4400) #define TIM11_BASE (APB2PERIPH_BASE + 0x4800) Еще есть возражения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба Еще есть возражения? Больше нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
let's see 0 25 декабря, 2012 Опубликовано 25 декабря, 2012 · Жалоба Больше нет. С Новым Годом! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться