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

 
 
> Общая структура программы?
shkal
сообщение May 30 2011, 12:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 281
Регистрация: 29-04-08
Из: Москва
Пользователь №: 37 149



Это мой первый опыт общёния с контроллерами на старости лет, так что прошу сильно не пинать.
Итак, делается управляющая часть для НЧ-генератора 5Гц-1МГц. Она должна выполнять следующие функции:
1) Опрос состояния органов управления - кнопки, энкодер, переключатели.
2) Выдачу команд по SPI на ЦАП, управляющий частотой и релюшки переключения диапазонов.
3) Измерение частоты генератора , алгоритм приведён здесь: алгоритм
4) Отображение частоты и другой информации на LCD 16x2

Вполне возможно, потребуется дописывать функционал в дальнейшем, например, измерение напряжения с помощью встроенного АЦП и статистическую обработку частотомера.

Сейчас написаны пункты №1, №2, №4, и приступаю к №3. Вот тут-то и встал вопрос об общей структуре программы.
Фактически параллельно должны выполняться несколько задачь
№1 требует периодического выполнения по таймеру с точностью ,скажем, +-20% от номинала. Сейчас написана по прерыванию одного из таймеров.
№2 требует значительного времени на исполнение команды (рэле-медленное устройство)
№3 требует максимально быстрой и всегда одинаковой по кол-ву циклов реакции на прерывание ICx, в противном случае возникают ошибки счёта.

Где можно посмотреть - почитать общие подходы к построению таких программ? Единственная книга по теме, котораю попалась в руки - embedded multitasking
Но методика, изложенная там, показалась мне малореальной в практическом смысле в условиях постоянного дописывания функционала.

Да, пишется всё под pic24h

Сообщение отредактировал shkal - May 30 2011, 13:03
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ukpyr
сообщение Jun 1 2011, 15:14
Сообщение #2


Профессионал
*****

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



Цитата
ОК, как я понял, таким образом можно реализовать задержки не короче системного тика (10 мс в данном случае) ?
да
Цитата
Только надо напомнить, что эта синхронизация будет с точностью до времени прохода одного цикла
конечно, нужно следить за тем чтобы время обработки всех задач (плюс обработки прерываний) не выходило за пределы минимального тика системного таймера
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- shkal   Общая структура программы?   May 30 2011, 12:58
- - Danis   Цитата(shkal @ May 30 2011, 15:58) Это мо...   May 30 2011, 13:27
- - shkal   Да вроде пока хватает с большим запасом. Всё, что ...   May 30 2011, 14:19
|- - Tanya   Цитата(shkal @ May 30 2011, 18:19) Всё, ч...   May 30 2011, 15:14
- - shkal   Частотомер процессорного времени практически не за...   May 30 2011, 15:27
- - ukpyr   медленные и некритичные по времени задачи (кнопки,...   May 30 2011, 16:56
|- - scifi   Цитата(ukpyr @ May 30 2011, 20:56) медлен...   May 31 2011, 12:23
- - shkal   ICх буферизированы, но там надо читать одновременн...   May 30 2011, 17:25
- - vat   Цитата(shkal @ May 30 2011, 16:58) №3 тре...   May 31 2011, 08:54
|- - ut1wpr   Цитата(vat @ May 31 2011, 12:54) Помнится...   Jun 6 2011, 04:54
|- - shkal   Цитата(ut1wpr @ Jun 6 2011, 07:54) На чем...   Jun 6 2011, 11:48
- - shkal   ICx - это и есть input capture. Если использовать ...   May 31 2011, 09:46
- - ukpyr   еще можно добавить синхронизацию по интервалу 1мс/...   May 31 2011, 16:07
|- - scifi   Цитата(ukpyr @ May 31 2011, 20:07) еще мо...   Jun 1 2011, 14:14
- - shkal   ukpyr, спасибо, ответ максимально по делу. Пойду ч...   Jun 1 2011, 09:24
- - ukpyr   ЦитатаЕсли, допустим, использовать один из таймеро...   Jun 1 2011, 12:36
- - shkal   ОК, как я понял, таким образом можно реализовать з...   Jun 1 2011, 14:12


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:48
Рейтинг@Mail.ru


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