Вопрос по мк AVR. Останавливается ли счётчик мс функцией delay?

У контроллеров есть функция millis () ;, которая возвращает количество миллисекунд с момента запуска, и есть delay (ms) ;, приостанавливающая выполнение программы. Вопрос - продолжает ли набираться значение, которое вернёт millis () ;, пока программа ждёт по команде delay () ;?
5 года назад от Саша Дно

2 Ответы

0 голосов
Посеветую слезать вам с этой Arduino IDE и писать на чистом Си, так вы поймете все тонкости работы с контроллером, да и на другие контроллеры будет легче перелезть. А так как сказали выше, таймер тикает постоянно, независимо от delay () , , а в его прерывании (таймера) инкрементируется переменная, значение которой и возвращает функиция millis ()
5 года назад от ShanonDonaho
0 голосов
Продолжает набираться. Я так тестил е точность на ардуине. Таймер - это как бы отдельное ядро. Точно так же код генератора колебаний (через таймер) не конфликтует с основным кодом.

Но вобще не очень понятно, зачем нужен этот шлак AVR. От одной официальной Arduino IDE меня как профи программиста просто клинит. А STM32 и дешевле, и куда мощне. Ну да, писать тяжело, доков толком нет, зопарк моделей, надо именно быть профи - ну так написал бы один такой профи библиотек, а другие бы их юзали.
Купил китайскую (! ) плату на STM32 рублей на 200-300 дороже ардуины - а там и кнопка вкл\выкл, и целых 2 USB-разъема (один, видимо, с 232, другой просто питание) , и разъем для батарейки (для часов, наверно) , и пинов как у 2 ардуин, и CAN, и тактовая частота высокая.

P. S. Дороже брал осознанно. Для прототипирования надо выбирать плату покруче. А минимальная - намного дешевле ардуины, т. к. сам чип намного дешевле.
5 года назад от ludmila Ustimenko

Связанные вопросы