22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||||
1 | ||||||
STM32F0DISCOVERY (STM32F051R8T6) настройка таймера и реализации такта в 1 мкс20.08.2015, 15:45. Показов 2952. Ответов 14
Метки нет (Все метки)
Необходимо настроить таймер и получить временную границу между тиками таймера в 1мкс. Как это реализовать?
Привожу код, который у меня, он не работает. STM32F051R8T6 работает на HSE (8МГц). Пишу в Keil u5.
0
|
20.08.2015, 15:45 | |
Ответы с готовыми решениями:
14
STM32F0DISCOVERY (STM32F051R8T6) Внешнее прерывание на PA1 Задать интервал системного такта таймера в миллисекундах Настройка таймера ATmega2560 настройка таймера |
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
20.08.2015, 17:21 | 2 |
Настройте прерывание таймера и из него дергайте ножки, а лучше используйте режим ШИМ, когда таймер сам будет дергать ногами. Работа с GPIO не конек ARM(ов) особенно в чипах без Bit Banding, а у Вас чип без него.
не делайте так больше, плз. Повторюсь еще раз, для этого есть прерывание.
1
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||||
20.08.2015, 18:03 [ТС] | 3 | |||||
Огромное спасибо, просто у меня есть прерывание на вывод PA1, так там просто идет
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
20.08.2015, 20:12 | 4 |
Я не вижу это в коде.
Если Вы до ARM программировали AVR, PIC итд, то Вам придется отказаться от парадигм этих систем, здесь немного не так. Добро пожаловать в реальность (С)
0
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
|||||||||||
20.08.2015, 20:35 [ТС] | 5 | ||||||||||
Да до этого тока PIC и AVR. Мне важно чтобы тик таймера был равен 1мкс, почему, так как я обрабатываю входной сигнал с передатчика, там четкие временные диапазоны для лог 1 и 0. На пике у меня было 1 тик равен 0.5мкс, я его делил на 2 и получал 1мкс, ниже обработчик прерывания для пика к примеру.
Обработчик на АРМ
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
20.08.2015, 20:44 | 6 |
Вы наверно не обратили внимание на моё замечание.
Включите таймер в "режим захвата"
P.S. Извините но Keil плохо знаю, а синтаксис IAR несколько отличаются, примеры не привожу просто больше запутаю, ИМХО.
0
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
|
20.08.2015, 20:55 [ТС] | 7 |
В режиме захвата?! Боюсь без Вашей чуткой справки я не смогу нормально понять что Вы имеете ввиду!
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
20.08.2015, 21:03 | 8 |
0
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||||
22.08.2015, 01:11 [ТС] | 9 | |||||
0
|
Модератор
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
|
|
23.08.2015, 16:39 | 10 |
во первых для того чтобы процессор зашел в прерывание,тоже нужно время
во вторых вот эта фигня занимает как минимум 3 такта 1 считали 2 изменили 3 записали это еще три такта еще и выход из прерывания вывод: увеличивай частоту синхронизации напаяй внешний кварц ( на своей дискавери я так и сделал, правда у меня 100 я поменял камень на 103,и пришпандорил оба кварца ) и работай с HSE открой для себя программку STM32cubeSX, очень удобно настраивать перефериию, а для некоторых камней она и код генерит Добавлено через 1 минуту или второй вариант который предложил Витальич, Используй аппаратный ШИМ
0
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
|
24.08.2015, 08:56 [ТС] | 11 |
ValeryS, если данные команды для работы с портом не атомарны, то как тогда в этом случае отрабатывает SysTick - он дает 1мкс, как у него устроено обращение к выводу?! Хотел сказать большое спасибо про подробные комментарии!
0
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
24.08.2015, 08:59 | 12 |
1
|
Модератор
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
|
|
24.08.2015, 09:01 | 13 |
именно с 051 я никогда не работал
но у 100 серии например есть атомарное обращение к портам BRR и BSRR регистры(установить\сбросить) не знаю а разбираться лень скорее всего на аппаратном уровне,таймера тоже ножками дергают на аппаратном уровне(в режиме ШИМ)
1
|
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
|
|
24.08.2015, 09:04 | 14 |
1
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||||
28.08.2015, 20:25 [ТС] | 15 | |||||
Подскажите, я хочу в прерывании менять свойство, к примеру по какому критерию будет срабатывать к примеру сначала по нарастающему фронту, по том по спадающему. как правильно это надо описать в самом прерывании. я делал так, но конечно же не работает))
0
|
28.08.2015, 20:25 | |
28.08.2015, 20:25 | |
Помогаю со студенческими работами здесь
15
Настройка таймера в ATmega8 STM32f4 настройка таймера Настройка таймера времени Правильная настройка таймера настройка таймера/счетчика настройка и запуск таймера PIC16F887 настройка таймера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |