0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
1 | |
Существуют ли библиотеки задержек на таймерах?05.09.2011, 13:34. Показов 13678. Ответов 33
Метки нет (Все метки)
Доброе время суток.
Выводил тут на ЖК инфу с АВРки и понял, что так жить не хорошо. Дело в том, что в библиотеке для LCD, да и в <util/delay.h> задержки реализованы как ввод МК в цикл с почти нулевым КПД. За то время, пока идет задержка таким циклом, МК может выполнить туеву хучу полезной работы. Вот я и задумался, а не существует ли библиотек, которые позволяют установить нужное время задержки и дать МК поработать, а по истечении времени задержки (пусть с каким то допуском) вернуться к нужной задаче. Написано наверное не очень понятно, но постараюсь объяснить свою мыслю. Предположим существует функция Код
void some_func (void) { что то делаем 1 задержка // здесь мотаем тупой цикл что то делаем 2 } так Код
void some_func_smartdelay (void) { if (задержка не установлена) { что то делаем 1 устанавливаем задержку выходим } if (время задержки НЕ прошло) выходим что то делаем 2 задержка не установлена } Ну а дальше куча вариантов. На пример в обработчике прерывания от МК регистрировать функции, которые отдают на время задержки управление МК. Либо сразу вызывать их по очереди, пусть сами определяют, прошло время задержки или нет (большие накладные расходы), либо определять, какую ф-цию дернуть. Либо совсем другой вариант, просто выставлять флаги того, что надо дернуть нужную ф-цию, а главная прога уже дернет, когда посчитает нужным, видя, что флаг разрешает это самое дергание. Ну как то так.
0
|
05.09.2011, 13:34 | |
Ответы с готовыми решениями:
33
Существуют ли библиотеки UPnP Существуют ли библиотеки, работающие с интегралами Какие существуют библиотеки для ИИ на lisp? Какие существуют библиотеки логгинга и мониторинга? |
SWK
|
|
05.09.2011, 20:29 | 21 |
Сообщение от PRS
Есть еще и DIP-8 флэшки 512КБ - W25X40 -( 4 MBIT SERIAL FLASH MEMORY WITH 4Kb SECTORS AND DUAL OUTPUT SPI. DIP-8, CLOCK to 75MHz), питание 3,3v, как и у SD, и нтерфейс тоже SPI. Можно еще и их поставить. У них ресурс вроде 100 000 перезаписей. В общем, памяти я накрутил, теперь думаю, для чего ее использовать. Может, действительно какой интерпретатор использовать, или макросами задания давать, что в общем - то почти то же самое. Встроенные задания будут вообще одной командой запускаться. А вот если что-то нестандартное... Идеальный вариант был бы - загружаемый кусок кода, по нескольким заложенным в системе векторам вызова. Как в BIOS системы CP/M-80: 16 векторов в начале секции, а обработчики для них можно написать какие угодно. В общем - то, такие модули перезагружаться будут не очень часто, можно и в программный флэш контроллера, это было бы проще всего... 1000 циклов должно надолго хватить. По 3 раза в день - и то почти на год... |
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
|
05.09.2011, 20:45 | 22 |
SWK, а почему бы не перейти на ту же стм8, они могут выполнятся из рама.
0
|
SWK
|
|
05.09.2011, 21:00 | 23 |
Сообщение от PRS
1. У меня их нет, в продаже тоже, когда появятся - неизвестно, с заказами заморачиваться не стоит, особенно с нашими Алматинскими почтовиками (был печальный опыт)... 2. Из того, что уже имею, вроде Мега 128 более - менее устраивает. Да и надо же их куда-то использовать, лет 5 уже валяются, и в общих чертах я с ними знаком... 3. За время, потраченное на изучение особенностей STM-8, я наверняка успею уже что-нибудь написать для Меги 128... Кроме того, мне очень нравится писать в МикроПаскале для PIC и AVR, а для STM-8 кроме не очень любимого мной С других фирм, ничего пока нет... Как обычно, начну сначала с низов - распишу работу с разной памятью, межконтроллерный обмен, замкну главный цикл, пока все это отлажу - появятся идеи и наработки более высокого уровня. Возможно, попробую варианты с OC. Да и меня никто не гонит, сроков конкретных нет, есть желание - занимаюсь, нет желания - ну, еще подождет... |
SWK
|
|
06.09.2011, 12:56 | 24 |
Сообщение от PRS
|
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
06.09.2011, 22:09 | 25 |
У меня созрел дурацкий вопрос, но я его все же задам для подстраховки. Стоит часовой кварц. Тикнул, жахнуло прерывание. В обработчике есть код. А теперь внимание, драцкий вопрос. На частоте какого кварца будет выполнен этот код. Логически понимаю, что на частоте основного кварца. Но все же.
0
|
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 4,283
|
|
06.09.2011, 22:11 | 26 |
Основного, так и есть. А часовой просто тикает в свое удовольствие и ни на что не влияет (только таймер от него тактируется).
0
|
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
06.09.2011, 22:31 | 27 |
Отлично, решил перебдеть.
0
|
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
06.09.2011, 22:36 | 28 |
И еще один маленький (а может и большой). Сколько проходит времени с момента отправки команды на включение порта, до установки максимального напряжения на выводе?
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
06.09.2011, 23:42 | 29 |
Сообщение от Doimom78
0
|
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
07.09.2011, 00:42 | 30 |
Сообщение от Johmmy0007
Нет, не переключение. А время с с момента переключения ножки в 1 до установки на ней максимального напряжения. То есть задержка на нарастание напряжение, грубо говоря милливольт в секунду.
0
|
SWK
|
|
07.09.2011, 01:36 | 31 |
Сообщение от Doimom78
Если только мощный полевик с тысячами пик затвора вешать... Так их, если скорость важна, через драйверы включают. А если он включается раз в несколько минут, как у меня в контроллере башни на питании камеры и прочего - так там мне и десятки миллисекунд его не нагреют. И токи мизерные... |
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
07.09.2011, 13:09 | 32 |
Понятно, спасибо. Я эти вопросом парюсь, так как хотелось бы передавать определенное количество энергии через лазер за определенный промежуток времени в импульсном режиме. Соответственно хочу понять, сколько времени надо заложить между включением и отключением порта, чтобы как можно точнее выполнить условие.
0
|
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
|
|
07.09.2011, 13:25 | 33 |
Сообщение от Doimom78
0
|
0 / 0 / 0
Регистрация: 11.08.2011
Сообщений: 466
|
|
07.09.2011, 13:46 | 34 |
Сообщение от Johmmy0007
Да тут пока не учитывать надо бы, а просто определить их порядок. Понятно, что если другие задержки не постоянны и гуляют в пределах больших время нарастания напряжения на ножке, то тогда учет бесполезен. А если эти задержки почти константа, с дельтой в пределах долей время нарастания напряжения на ножке, то тогда смысл есть.
0
|
07.09.2011, 13:46 | |
07.09.2011, 13:46 | |
Помогаю со студенческими работами здесь
34
Какие существуют библиотеки для работы с сокетами? Какие существуют библиотеки для перехвата нажатых клавиш? Существуют ли какие-нибудь библиотеки C++ для работы с HTML Существуют ли библиотеки для Win32 API, которые меняют внешний вид? Существуют ли подключаемые модули или библиотеки для работы с бинарными переменными в VB6 Существуют ли движки или библиотеки Java, при помощи которых можно создать свою версию калькулятора? Существуют ли библиотеки программ на нативных web языках для работы с базой данных аналогичные библиотеке VCL? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |