millis(). Принцип работы.
- Войдите на сайт для отправки комментариев
Втр, 09/09/2014 - 10:49
Доброго времени суток, коллеги. Может кто подскажет как работает millis()? От какого источника она тактируется?
Доброго времени суток, коллеги. Может кто подскажет как работает millis()? От какого источника она тактируется?
А вам недостаточно того что это просто часы, показывающие время, которое можно в любой момент считать? ( как те, который висят на кухне). Желаете в дебри залезть? Тогда к Лешаку. ( но лучьше не тревожить его по пустякам)
Тактируются от внешнего кварца (там где он есть) или от внутреннего генератора (там где кварца нет).
Меня интересует использует она каки-то прерывания или как-то иначе работает. А в дебри лезть к сожалению надо :(
Функция Millis и micros использут 8 битный Т0, Данный таймер все время тикает и как натикивает 1 милли секунду или микро секунду, увеличивают переменную на 1; это как я понял принцип работы данной функции
Думал есть какое-то другое решение... Ну да ладно. Спасибо :)
Решение чего?
Да это я совсем в дебри залез. Имел в виду принцип работы millis().
Думал есть какое-то другое решение... Ну да ладно. Спасибо :)
других решений в камне нету.... вот так сделали !
если вы хотите решить вашу задачу - есть и другие способы.... НО камень сделали не для ваших задач, а под общие задачи.... у вас - какая задача ? спросите по другому...
...перенастроите счётчик_Т0 - вылезут проблемы с миллис, с микро и с ШИМ-ом в 2-ух каналах :(
Решение чего?
...примите соболезнования по поводу окончания отпуска ( пребывания в чужих землях ) :)
Функция Millis и micros использут 8 битный Т0, Данный таймер все время тикает и как натикивает 1 милли секунду или микро секунду, увеличивают переменную на 1; это как я понял принцип работы данной функции
...ент уж - позвольте !
это принцип работы счётчика_Т0... а вот уж функция возвращает текущее значение счётчика от момента запуска кода... АБСОЛЮТНОЕ время в тиках....
...примите соболезнования по поводу окончания отпуска ( пребывания в чужих землях ) :)
Принимаю :) Но только из-за того что я не выспался.
добрейший души человек ! некоторые - сразу ....ф...Й посылают :)
Привет. зёма ! давно не виделись... , где был ?
В больнице...
Чё лечил ?
Нервы...
Что-что, извини ?
ННЕЕРРВВЫЫ !!!!!!!!!!!!!!!!!!!!!!!! , БЛЯТЬ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Думал есть какое-то другое решение... Ну да ладно. Спасибо :)
у вас - какая задача ? спросите по другому...
Да я тут у вас промышленным шпионажем занимаюсь :)
На самом деле я использую чистую атмегу и среду разработки Atmel Studio. В штатных библиотеках аналогов Ардуиновской millis() нет, народ на форумах либо не знает как реализовать либо умничает. Вот решил у вас поспрошать, мож знает кто.
Вроде кто-то это реализовал через прерывание от аналогового компаратора но я пока не понял как он это сделал.
Думал есть какое-то другое решение... Ну да ладно. Спасибо :)
у вас - какая задача ? спросите по другому...
Да я тут у вас промышленным шпионажем занимаюсь :)
На самом деле я использую чистую атмегу и среду разработки Atmel Studio. В штатных библиотеках аналогов Ардуиновской millis() нет, народ на форумах либо не знает как реализовать либо умничает. Вот решил у вас поспрошать, мож знает кто.
Вроде кто-то это реализовал через прерывание от аналогового компаратора но я пока не понял как он это сделал.
от аналогового компаратора это сделать невозможно ( типа ваши часы идут когда светло, ночью - стоят, а солнышко взойдёт ? часы дальше будут считать ? что считать ? )
- выделите счётчик под ето дело ( в сетапе - его нуно обнулить )
- на его вход подайте такты с кварца - и пусть сибе считает независимо ни от чего....
- его показания ( счётчика ) всегда можно считать и перевести в размерность ВРЕМЯ
Я вас понял. Всем спасибо за оказанное внимание.
:)
Нет ничего сложного вытащить исходник функции millis() из ардуино иде и использовать его в Atmel Studio..
согласен :) - возможно, но зачем МК гнобить-то ? так можно вернуться и к аналоговым умножителям....
согласен :) - возможно, но зачем МК гнобить-то ? так можно вернуться и к аналоговым умножителям....
В смысле костяшки на счетах перекидывать?
абак - удобнее !
абак - удобнее !
Не соглашусь. На счетах такт удобнее отбить.
это у вас счёты старые..... у моих - встроенный такГенератор на 2 Гц внедрён..... НО абак - лучшеееееее ! на нём и в нарды мона поиграть.....
*ываыв
Нет ничего сложного вытащить исходник функции millis() из ардуино иде и использовать его в Atmel Studio..
Как?
Ну там функцию millis в исходниках через поиск найти и скопировать.. Правда нужна ещё будет настройка таймеров - это тоже можно найти там же..
http://www.cyberforum.ru/avr/thread1174349-page2.html - там есть
Нету там принцыпа работы. Безпринципно всё. Тактовая идет через прескаллер, (при 16Мгц он делит на 64 при других не пробовал), и таймер 0 инкрементится каждые 4мксек. как таймер по кругу прощелкает прерывание вызвалось, и в счетчике добавилось. Причем с дробной частю милисекунды. А millis просто счетчик возвращает. Та чё там базарить - сами читайте здесь ...arduino-1.0.4\hardware\arduino\cores\arduino\wiring.c micros() ещё и текущее состояние таймера 0 добавляет.
Могу предложить альтернативный способ отсчета временных интервалов. Например использовать ADC для этого ;) Может ТС его компаратором назвал ? Или ватч дог зарядить под эти цели. Правда и тот и другой метод имеют много большую погрешность, при условии, что процессор тактируется от кварца, но вам хотелось альтернативы :)
А вот про собаку я и не думал. Всё равно без дела сидит. Надо помозговать. Спасибо.