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

 
 
 
Reply to this topicStart new topic
> STR912 - "Capture" работает только у TIM0, Не работаю несколько входов Capture у таймеров
Developer_S
сообщение Oct 15 2008, 12:41
Сообщение #1





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



Здравствуйте, коллеги.
Напоролся на странную проблему. Написал функцию измерения периода входных импульсов для TIM0 с использованием Capture_1. Задействованы прерывания по "переполнению" и "захвату". Всё великолепно работает! Никаких претензий!
Затем решил задействовать для другого аналогичного сигнала Capture_2. Оказалось, что прерывание TIM_IT_IC2 не вызывается. Решил, что может со входом что случилось - ну, мало ли, к примеру, статикой прошило.
Решил временно задействовать TIM2 с запуском "захвата" по TIM_IT_IC1. В итоге: по переполнению прервание работает, а по "захвату" не хочет, хотя всё скопировал с рабочих процедур TIM0, которые нормально пашут. Проверил: TIM0 везде заменил на TIM2.
PS: пользуюсь последней версией библиотеки ST.
Go to the top of the page
 
+Quote Post
Warlockwolf
сообщение Oct 15 2008, 18:02
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 17-06-08
Пользователь №: 38 358



проверте настройку ножек на вход выход. IO которые.

у меня был интересный случай, переразвел плату, и в процессе поменял некоторые ноги (чтоб не тянуть далеко дорожки) чуть изменил пргограмму, зашил. и неработает. по порту спи на входе мусор. думал при перепайке сдохла микросхема. Но оказалось все проще, порт номер Хх, ножка 1 SPI MISO, ножка 2- оут таймера с частотой на выходе 7мегагерц. оказалось по невнимательности , оставил на ножке которая оут таймера --GPIO_Struct.GPIO_IPConnected = GPIO_IPConnected_Enable; и это както влияло на соседнюю ножку, на которой сидит спи мисо. исправил GPIO_Struct.GPIO_IPConnected = GPIO_IPConnected_Disable; и вуаля все заработало.

Сообщение отредактировал Warlockwolf - Oct 15 2008, 18:04
Go to the top of the page
 
+Quote Post
koyodza
сообщение Oct 17 2008, 17:23
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Делал захват по разным таймерам (кажется 0, 1 и 2) - проблем с самим захватом не было, но прерывания по захвату я не использовал - меня интересовало только значение, которое считывалось асинхронно, а флаг захвата проверлся поллингом. Проверьте внимательно настройки пинов, как указывал коллега Warlockwolf.
Go to the top of the page
 
+Quote Post
Developer_S
сообщение Oct 20 2008, 08:32
Сообщение #4





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



Вроде все правильно сделал (Pin_6.0 для TIM0 и Pin_6.2 для TIM2)

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput;
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull;
GPIO_InitStructure.GPIO_IPInputConnected = GPIO_IPInputConnected_Enable;
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1;
Go to the top of the page
 
+Quote Post
Warlockwolf
сообщение Oct 20 2008, 11:48
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 17-06-08
Пользователь №: 38 358



Посмотрите настройки соседних ног 6 порта. не только 0 и 2, у меня спи тоже настроен был правильно, а вот выход таймера неправильно.
Go to the top of the page
 
+Quote Post
Usatyj
сообщение Oct 20 2008, 13:01
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 1-02-07
Пользователь №: 24 931



Цитата(Warlockwolf @ Oct 20 2008, 15:48) *
Посмотрите настройки соседних ног 6 порта. не только 0 и 2, у меня спи тоже настроен был правильно, а вот выход таймера неправильно.

Бывает еще, перед настройкой ног порта забываешь обнулить GPIO_InitStructure и вот тогда таакое получается! проверь и на это тоже.
Go to the top of the page
 
+Quote Post

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

 


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


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