Таймера atmega328p
- Войдите на сайт для отправки комментариев
Всем добрый день.
У меня стоит задача получать беспрерывно данные с аналогового пина, сравнивать их друг с другом и раз в 50мкс отправлять их на другую ардуинку, которая будет заниматься вычислениями.
На первый взгляд я подумал, что задача легкая, но как всегда вылезли подводные камни, которые я пока не понимаю как сдвинуть.
Для беспрерывного считывания я использовал первончально фри ран мод и меня это устраивало до тех пор, пока не встала задача отправлять данные раз в 50мкс. Я просто хотел использовать millis(), но как я понял, когда перенастраиваешь биты для фри ран мода, можно забыть про millis().
Немного покопавшись в интернете я нашел библиотеку GyverTimers. По описанию я подумал, что это решение подойдет, но или я что-то не так пишу или библиотека не предназначена для моих целей. Проблема в том, что я запускаю 2 таймера с периодом в 5мкс и 50мкс, по отдельности они работают, но вместе уже не могут, работает последний таймер, который прописан в коде.
Решил покопаться в даташите atmega328p, но перенастройкой таймеров я никогда не занимался и испытываю сложность с настройкой.
Можете подсказать куда копать/ что почитать/ дать совет?
В даташите всё есть.
У atmega328 целых три таймера...
Удивительно, что так не отвечают под всеми ветками форму ;-)
так микро или милли?
так микро или милли?
мили =)
так микро или милли?
мили =)
показывай код
Ты спрашивал, что почитать? Универсальный ответ (и правильный) - datasheet. Там самая точная и полная информация.
Я просто хотел использовать millis(), но как я понял, когда перенастраиваешь биты для фри ран мода, можно забыть про millis().
Насколько я знаю, одно другому не мешает.
Или имеется в виду "забыть" потому, что становится не целесообразным использовать millis() ?
Проблема в том, что я запускаю 2 таймера с периодом в 5мкс и 50мкс, по отдельности они работают, но вместе уже не могут, работает последний таймер, который прописан в коде.
а зачем их два? Если период таймеров кратен друг другу - запускай более частый и в нем заведи счетчик. Как отсчитал 10 раз по 5 мс - значит прошло 50
Которая сделана на тех же самых миллис, про которые можно забыть?
Это к автору - https://community.alexgyver.ru/
Неприятно слышать.
Ну, читать даташит. А если хотите задавать вопросы, то приводите Ваш код и задавайте вопросы по нему.
И вообще, почитайте первую тему в разделе "Песочница" - там написано как правильно вопросы задавать.
А если хотите задавать вопросы, то приводите Ваш код и задавайте вопросы по нему.
"ишь, петь хотели заставить" )))
NikiMikh, то, что написано в заглавном сообщении темы, вряд ли реализуемо на atmega 328. Даже если какую-то часть удастся реализовать, придется забыть о том, чтобы "найти библиотеку" - все придется писать самому. Ну не работает Ардуина на тех скоростях, которые Вы хотите. И то, что таймеры якобы не работают, - скорее всего, они просто не успевают.
Другими словами, если есть большое желание, нужно детально разбираться с дэйташитом и аккуратно считать по тактам, что реализуемо, а что - нет.
Ну либо взять контроллер помощнее, например, BluePill.
О чём можно говорить, если человек путает мс с мкс!
О чём можно говорить, если человек путает мс с мкс!
Да, на МКС такие грибы не растут, не успевают вырасти ))))
О чём можно говорить, если человек путает мс с мкс!
Так не говорите ничего и не пишите. Проблема в чем?
Ну, читать даташит. А если хотите задавать вопросы, то приводите Ваш код и задавайте вопросы по нему.
И вообще, почитайте первую тему в разделе "Песочница" - там написано как правильно вопросы задавать.
Хорошо, спасибо
О чём можно говорить, если человек путает мс с мкс!
Так не говорите ничего и не пишите. Проблема в чем?
Проблема не у меня. Проблема у вас. Вы ведь не можете разобраться и просите помощи.
При этом не можете сформулировать что вам надо.
так микро или милли?
мили =)
Проблема не у меня. Проблема у вас. Вы ведь не можете разобраться и просите помощи.
При этом не можете сформулировать что вам надо.
У меня проблем нет, адекватный человек заметил, что я допустил опечатку и спросил, а не язвил как ребенок.
Выкинь к чертям дурдуину! У тебя ТРИ таймера + таймер на адс фрееран + вачдоговский таймер! Неужели для такой простой задачи тебе не хватает ПЯТИ таймеров??? )))))))))
у мня есть таймеры, полнО. Спроси меня как.
у мня есть таймеры, полнО. Спроси меня как.
а я хотел сразу предложить, да ты молчишь, ну думаю и я промолчу...