Как стать автором
Обновить
51
0
Александр Н. @avn

Пользователь

Отправить сообщение
Вы имеете в виду изменение программного счетчика dmsec? Операция сложения занимает совсем немного времени.
Что касается периода таймера, то меня 1) интересовала точность в пределах 1 мсек, 2) хотелось занять 8-ми битный таймер, а не 16-ти битный.
Можно ли для этого использовать таймер не на 32768, а, скажем, как у меня, 12 MHz?
Нет такого файла.
Понятное дело, его не сложно скопировать ;-)
Преложенный avn вариант реализации счета времени имеет право на жизнь в небольших программах, когда основной задачей является счет времени
Почему так? Предложенный мною счетчик не требует много машинных тактов для своей работы. Более того, прерывание происходит раз в 100 микросекунд. Конечно, для некоторых программ это неприемлемо. Но я бы не сказал, что это приемлемо ТОЛЬКО для небольших программ с задачей считать время.
Про минусы Вашего варианта я бы добавил нередкую ситуацию, когда таймер «запаздывает» — возможна ситуация, когда во временной delta уже не ноль, а где-то я использую постоянную delta и считаю, что время еще не прошло.
Как я написал в комментариях к своему топику — для совсем уж критичных и точных приложений лучше поставить внешний таймер — пусть даже банальный n-разрядный счетчик, тактируемый высокоточным кварцевым генератором. И он не будет зависеть ни от чего
Честно говоря, это В МОЕМ СЛУЧАЕ не шибко важно — я не делаю хронометр. И задачи у меня не хронометрические.
А вот если мне надо будет очень и очень четко отмерять время, я буду пользоваться внешними устройствами, несвязанные с логикой работы программы.
Дело не в этом. В фехтовании (к слову, не только шпага — там еще рапира и сабля) наличествует 2 цепи наконечника в клинке, цепь электропроводящей куртки и цепь дорожки. Соответственно, распознаются ситуации укола в непроводящую поверхность, в куртку, в дорожку и в клинок (точнее, в гарду). Все эти ситуации — их всевозможные комбинации, длительность нажатия/касания (от 0.7 мсек в сабле до 15мсек в рапире) — надо анализировать. Скажем, скользящий укол в гарду, с которого перепрыгивает на куртку, а противник в это время уколол в гарду. И все это надо закоммутировать и убедиться, что все отрабатывается корректно.
У меня в CodeVisionAVR такой тип не поддерживается.
Я могу его сделать typedef, но лично мне читабельней byte/word/dword/qword/real.
А вот с этим можно поспорить. У меня опыт программирования 20 лет и в С++ у меня еще не было ситуации, когда подходил ТОЛЬКО goto. В С тоже, в общем-то, всегда можно было выкрутиться.
НО в микроконтроллерах он иногда здорово облегчает жизнь! Потому что дает более простой код.
А вообще — какая разница, на самом-то деле? Главное, чтобы было читаемо и работало как надо. «Читаемо» — категория субъективная. «Работает как надо» — тут не важно, goto или while ().
IMHO :-)
Ну-у, вначале я и хотел делать миллисекундным, но с моим контроллером и моим кварцем оптимальным получился как раз 0.1 миллисекундный. Им я в основном и пользуюсь — однажды, впрочем, пригодилось значение таймера
Ну-у, вначале я и хотел делать миллисекундным, но с моим контроллером и моим кварцем оптимальным получился как раз 0.1 миллисекундный. Им я в основном и пользуюсь — однажды, впрочем, пригодилось значение таймера
Что легче сравнить на предмет «что больше?» — одну числовую переменную или структуру?
Да, об этом я думал написать тоже… Хорошо, что напомнили — ща добавлю информацию.
«ДециМиллиСекунда» — это скорее 10 мс, чем 0.1
Нет уж, извините :-)Р! Секунда — 1 сек. Миллисекунда — 1e-3 сек. «Деци» — 1e-1 (как дециметр). Посему получаем 1e-4.
По поводу тика — да, в Windows тоже явно оперируют тиками. Только тик там 1 мсек, если не ошибаюсь (т. к. функция GetTickCount() переполняется за 49 суток, если не ошибаюсь)
Ну-у, заголовочек я втулил. А вообще сделаю в понедельник фотку того самого коммутатора — монстр еще тот!
А-а, а то я начал судорожно искать в тексте — вроде ж ничего не было такого…
Упс, извиянюсь! Благодарю, исправил!
Просто у меня с институтских времен было сокращение в конспекте АЦП — аналогово-цифровое преобразование. Посему ОНО…
В общем-то, не спорю — в итоге я все-таки разобрался с этим вопросом… Но не выкидывать же все-таки результат!
Я уже не помню подробно. Факт в том, что пол дня промучился, плюнул и сделал такой вот код

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность