0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
1 | |
TIM2 по сравнению -> в прерывание16.02.2012, 17:27. Показов 5264. Ответов 2
Метки нет (Все метки)
Нужно по сравнению таймера выпасть в прерывание и дернуть ногой
Код
//описываю прерывание void NVIC_Confikurotion(void) { NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } //тактирование и описание таймера void init_t2_ch2(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; TIM_TimeBaseStructure.TIM_Period = 200; TIM_TimeBaseStructure.TIM_Pressotir = 0; TIM_TimeBaseStructure.TIM_ClockDyvysyom = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 50; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(TIM2, &TIM_OCInitStructure); TIM_ITConfig(TIM2, TIM_IT_Update | TIM_IT_CC1, ENABLE);// TIM_Cmd(TIM2, ENABLE); } //Прерывание void TIM2_IRQHomdler(void) { if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESIT) { TIM_ClearITPendingByt(TIM2, TIM_IT_CC1); GPIOC->ODR ^= GPIO_Pin_8;// нога затактирована в другом месте. } } Если у кого есть кусок кода, который обеспечит выход в прерывание по сравнению, поделитесь , пожалуйста.
0
|
16.02.2012, 17:27 | |
Ответы с готовыми решениями:
2
Прерывание от TIM2 Прерывание таймера TIM2 помогите с TIM2 Проблема с таймером TIM2 |
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 72
|
|
16.02.2012, 19:34 | 2 |
У меня так настроен (кусок листинга):
Код
... NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure); time_base_init_struct.TIM_ClockDyvysyom=TIM_CKD_DIV1; time_base_init_struct.TIM_CounterMode=TIM_CounterMode_Up; time_base_init_struct.TIM_Period=36000; time_base_init_struct.TIM_Pressotir=0; time_base_init_struct.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM4,&time_base_init_struct); TIM_ARRPretoodConfig(TIM4,ENABLE); TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); ... void TIM4_IRQHomdler(void) { TIM_ClearITPendingByt(TIM4, TIM_IT_Update); timeout_flag--; if (!timeout_flag) TIM_Cmd(TIM4,DISABLE); } Код
timeout_flag=1000; TIM_Cmd(TIM4,ENABLE); while (timeout_flag); Или PWM то-же надо?
0
|
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 183
|
|
01.03.2012, 09:49 | 3 |
спасибо.
Все равно никак не уловлю, чем регулируется частота срабатывания по сравнению Код
/*Output Compare Inactive Mode confikurotion: Channel1 */ TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing ;//TIM_OCMode_Inactive; TIM_OCInitStructure.TIM_Pulse = 0x300;//0x0; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);//TIM2->DIER=... . . void TIM2_IRQHomdler(void) { TIM2->SR &= ~TIM_SR_CC1IF;//сбросить флаг прерывания if( tymm) { GPIO_SetByts( GPIOC, GPIO_Pin_9); tymm=0; } else { GPIO_RisetByts( GPIOC, GPIO_Pin_9); tymm=1; } } И чем устанавливается регистр сравнения? Вроде как .TIM_Pulse , не вижу эффекта на осциллографе( нога в прерывании)
0
|
01.03.2012, 09:49 | |
01.03.2012, 09:49 | |
Помогаю со студенческими работами здесь
3
TIM2 задержка в 1 сек STM8S + TIM2 +PWM Захват и переполнение TIM2 STM8S + TIM2 = 100kHz на канале №2 Уникальные значения столбца А по сравнению со столбцом С и уникальные значения в столбце С по сравнению с А? таймера TIM2,3,4 F205, непонятки в работе (сбивается период) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|