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

 
 
 
Reply to this topicStart new topic
> ARM Cortex M4 таймеры, Помогите советом
CBo6ogHbIu
сообщение Mar 28 2014, 03:46
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 28-03-14
Пользователь №: 81 124



Всем доброго времени суток.
Осваиваю связку Cortex M4 150 Мгц + Keil 5.*
Стоит задача чтения АЦП раз, скажем, в 100мкс + последующая матобработка. Для "упрощения" решил использовать RTX Keil.

1. Подключил cmsis_os.h
2. Инициализировал процессор на 150МГц, в прерываниях от одного из портов читаю ацп. Для начала и удобства отладки сделал это по таймеру раз в секунду.
3. Отладился, на осциллографе нужные картинки получил, данные проверил - все ок.
4. Дело дошло до переноса на таймер с нужной частотой(десятки мкс). И тут обнаружил, что keil предоставляет вроде как только таймеры от 1мс.
Попытался переопределить SysTick_Handler - он уже определен в hal_cm3. Попытался отказать от использования таймера в RTX_Conf_CM.c, чтобы убрать конфликт - SysTick_Handler по прежнему использовать не получается, плюс отваливаются вся обвязка в виде визуальной диагностики на LED и т.п.

У меня такое чувство, что я пропустил какую-то очень важную доку, но все поиски ни к чему не приводят. Такое впечатление, что выполнять действия чаще чем раз в 1мс в тырнетах вообще никому не нужно...
Кто пользовался ВЧ таймерами под Keil 5.*, помогите советом плз.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Mar 28 2014, 03:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(CBo6ogHbIu @ Mar 28 2014, 06:46) *
Такое впечатление, что выполнять действия чаще чем раз в 1мс в тырнетах вообще никому не нужно...

Средствами операционной системы хотите организовать таймер с частотой выше тиков ОС?
sad.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
CBo6ogHbIu
сообщение Mar 28 2014, 04:13
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 28-03-14
Пользователь №: 81 124



Цитата(Dog Pawlowa @ Mar 28 2014, 07:59) *
Средствами операционной системы хотите организовать таймер с частотой выше тиков ОС?
sad.gif

Тики ОС минимум раз в 1мкс(RTX_Conf_CM.c, OS_TICK). А таймеры - только 1мс. Нужен таймер 100мкс.

Сообщение отредактировал CBo6ogHbIu - Mar 28 2014, 04:15
Go to the top of the page
 
+Quote Post
skripach
сообщение Mar 28 2014, 04:28
Сообщение #4


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Придётся "углубиться" и разобраться с аппаратными таймерами и их прерываниями.
Тикать ОС чаще 1мс - моветон. sm.gif


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
CBo6ogHbIu
сообщение Mar 28 2014, 04:30
Сообщение #5





Группа: Новичок
Сообщений: 5
Регистрация: 28-03-14
Пользователь №: 81 124



Цитата(skripach @ Mar 28 2014, 08:28) *
Придётся "углубиться" и разобраться с аппаратными таймерами и их прерываниями.
Тикать ОС чаще 1мс - моветон. sm.gif

Пока склоняюсь к тому, чтоб отказаться от ОС и сваять простенький планировщик.
Go to the top of the page
 
+Quote Post
skripach
сообщение Mar 28 2014, 04:39
Сообщение #6


■ ■ ■ ■
*****

Группа: Свой
Сообщений: 1 100
Регистрация: 9-08-06
Пользователь №: 19 443



Цитата(CBo6ogHbIu @ Mar 28 2014, 07:30) *
Пока склоняюсь к тому, чтоб отказаться от ОС и сваять простенький планировщик.

Чтобы опросить АЦП с периодом 100мкс написать свой планировцик? гениально... sad.gif


--------------------
Делай что должен и будь что будет.
Go to the top of the page
 
+Quote Post
Herz
сообщение Mar 28 2014, 05:37
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Тему переименовал. Автору замечание за нарушение п.2.1.в Правил. Название "Помогите советом" не является осмысленным.
Go to the top of the page
 
+Quote Post
CBo6ogHbIu
сообщение Mar 28 2014, 06:40
Сообщение #8





Группа: Новичок
Сообщений: 5
Регистрация: 28-03-14
Пользователь №: 81 124



Цитата(skripach @ Mar 28 2014, 08:39) *
Чтобы опросить АЦП с периодом 100мкс написать свой планировцик? гениально... sad.gif

Спасибо за лестную оценку.
Не менее гениально считать, что топик - это ТЗ проекта. Описана лишь та часть, которая имеет непосредственное отношение к вопросу.
Про планировщик - имелась в виду возможная(пока еще) нецелесообразность использования ОС только из-за ее планировщика, хотя бы из-за занимаемой памяти.

Вместо личных оценочных суждений приветствуется конструктив:
1. Использование прерываний от других внутренних таймеров - спасибо за совет, принято, работает => задача решена одним из возможных способов.

Тем не менее остается открытым вопрос: если ли возможность с помощью KEIL RTX получить временной интервал 10-100 мкс и можно ли(как) перехватить доступ к systick_handler()?
Go to the top of the page
 
+Quote Post
Corvus
сообщение Mar 28 2014, 06:48
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Конструктив уже озвучен - используйте прерывания от другого аппаратного таймера. Это единственный правильный способ в данной ситуации.
Использовать ОС или нет, никто не подскажет, так проект неизвестен даже в общих чертах. Если будете использовать, то используйте правильно. Шаманства в стиле "перехватить доступ к systick_handler()" до добра не доведут.
Go to the top of the page
 
+Quote Post
CBo6ogHbIu
сообщение Mar 28 2014, 06:51
Сообщение #10





Группа: Новичок
Сообщений: 5
Регистрация: 28-03-14
Пользователь №: 81 124



В принципе - да, согласен, тему можно закрывать.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 28 2014, 11:24
Сообщение #11


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(CBo6ogHbIu @ Mar 28 2014, 07:46) *
...У меня такое чувство, что я пропустил какую-то очень важную доку...


Вы не доку пропустили, а этап изучения ранее наработанного до Вас опыта. анализ его, выбор более соответствующего Вашей задачи.
Вот это Вы и не сделали. Соответственно отсюда ослинные уши и растут...

Вам необходимо...
1) копнуть что такое ПДП, с чем едят, что даёт...
2) варианты работы с АЦП. циклический, ручой, работа с инжектерной группой, работа с несколькими ацп.
3) работа с таймерами, как средством чёткого временного интервала.
4) работа с событиями, как признак окончания заданного параллельного процесса и задания следующего
5) копнуть примеры сцепления таймеров-ацп-пдп, без участия мозгов МК.
6) объекты синхронизации в ОС, работа с ними из прерываний.
7) вектора прерываний, как способ уменьшения конфликтных ситуаций.

Примеров куча, на форумах(и тут так-же) встречаются толковые, лаконичные примеры...
А Вы сразу пилить. Вам бы подумать, поучиться немного...
Go to the top of the page
 
+Quote Post

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

 


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


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