Jump to content
maksimdag0

Задержка delay не работает правильно

Recommended Posts

Приветствую всех. Господа знатоки, выручайте, несколько дней уже не могу разобраться, весь инет просерфил так и не получилось разобраться. Проблема в следующим – при написании кода для atmega8 (пишу прошифки в CodeVisionAVR) использовал функцию delay_ms. Написал простой код –включение двигателя каждые 4 секунды (4 секунды двигатель работает, 4 секунды не работает), использовал задержку delay_ms =4000, все работает, но если я поставлю задержку, например,  на 2 минуты или больше то задержка длится только 55 секунд (цифры приблизительные), хотя задержка равна delay_ms = 120000. Подскажите пожалуйста почему так происходит, ведь задержка delay может длиться почти 50 суток?  

Двигатель подключен к внешнему источнику питания через транзисторный ключ (напряжение на PINе есть – транзистор открывается, двигатель работает; напряжения нет  - не работает).

Частота МК стоит 1МГц

32.png

Share this post


Link to post
Share on other sites

65536 ничего не напоминает? например предел 16 битного числа?

кстати 55 000 мс в него влазит.


Жизнь не белая или чёрная, а в мелкую серенькую полосочку...

Share this post


Link to post
Share on other sites
16 часов назад, maksimdag0 сказал:

ведь задержка delay может длиться почти 50 суток

Ужас... Затупить проц в цикл на 50 суток - это уже верх мазохизма :wacko:

Share this post


Link to post
Share on other sites

Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

Подробнее

Как было уже написано, задержка работает правильно. Нужно найти файл delay.h(должен быть где-то в папке include, которая в свою очередь в папке с CVAvr находится). Посмотреть в этом файле объявление функции delay(),  скорее всего аргумент будет типа int  или uint(16 bit).

Для больших задержек в минуты, часы, дни, месяцы, годы лучше подключить к мк часы реального времени(rtc clock) или что-то типа того, и там уже настраивать будильником или таймером или еще как-то. 

Если нужна одна задержка с фиксированной длительностью и не высокой точностью, можно ее реализовать на ne555. С помощью мк можно длительностью этой задержки управлять в определенных пределах, если подключить цап или цифровой потенциометр в обвязку  ne555. 

Ну и брутальный вариант:

for(i=0; i < 65534; i++) {

delay_ms(65535) ;

} или с любым другим циклом. 

Share this post


Link to post
Share on other sites

Барьерные силовые клеммы от Degson – расширение складского ассортимента Компэл

Обновленная линейка барьерных клеммных блоков Degson, поступивших на склад Компэл, содержит широкий ряд клемм, подходящих для соединения проводников различного сечения (от 22AWG до 10AWG). Барьерные клеммные колодки сочетают в себе удобство, простоту и надежность соединения. Это достигается за счет ответственного производства и использования высококачественных материалов. Винтовые клеммные блоки барьерного типа Degson предназначены в первую очередь для коммутации в сильноточных цепях, например, в распределительных и измерительных системах.

Подробнее

08.04.2021 в 09:56, maksimdag0 сказал:

Приветствую всех. Господа знатоки, выручайте, несколько дней уже не могу разобраться, весь инет просерфил так и не получилось разобраться. Проблема в следующим – при написании кода для atmega8 (пишу прошифки в CodeVisionAVR) использовал функцию delay_ms. Написал простой код –включение двигателя каждые 4 секунды (4 секунды двигатель работает, 4 секунды не работает), использовал задержку delay_ms =4000, все работает, но если я поставлю задержку, например,  на 2 минуты или больше то задержка длится только 55 секунд (цифры приблизительные), хотя задержка равна delay_ms = 120000. Подскажите пожалуйста почему так происходит, ведь задержка delay может длиться почти 50 суток?  

Двигатель подключен к внешнему источнику питания через транзисторный ключ (напряжение на PINе есть – транзистор открывается, двигатель работает; напряжения нет  - не работает).

Частота МК стоит 1МГц

32.png

Лучше использовать таймер в прерываниях

main.c

это герлянда

Share this post


Link to post
Share on other sites

Материалы вебинара «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок»

Опубликованы материалы вебинара, посвященного решениям Analog Devices для гальванической изоляции. На вебинаре рассказали о: технологии гальванической изоляции iCoupler, цифровых изоляторах, технологии isoPower, гальванически изолированных интерфейсах (RS-485, CAN, USB, I2C, LVDS) и многом другом. Материалы вебинара будут интересны разработчикам промышленной автоматики и медицинской техники.

Подробнее

 

9 часов назад, Ivan Rusev сказал:

задержку delay_ms =4000, все работает, но если я поставлю задержку, например,  на 2 минуты

Это конечно поразительно, как можно просерфить весь интернет и не найти элементарного знания про то как числа сохраняются в переменных (в ячейках памяти ограниченной байтовой длинны), в вашем конкретном случае число со знаком сохраняется в двух байтах, просто ответьте на вопрос какое максимальное число можно уместить в двух байтах! и что будет если пытаться сохранить в двух байтах большее число.

Это к вопросу о наличии базовых знаний для программирования, это арифметика с ограниченной разрядностью и отображение натуральных чисел в числа с ограниченной разрядностью, изучайте!

Вы и найти это не можете потому что это очевидные вещи, для тех кто вырос в этом мире, а вы из другого мира получается (и это не хорошо и не плохо, может вы в чем то другом лучше ориентируетесь, просто это такая данность).


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
16.04.2021 в 08:24, ruhi сказал:

 

16.04.2021 в 08:24, ruhi сказал:
5.04.2021 в 22:51, Ivan Rusev сказал:

задержку delay_ms =4000, все работает, но если я поставлю задержку, например,  на 2 минуты

 

я это не говорил.Большие задержки лучше таймером производить

Share this post


Link to post
Share on other sites
13 часов назад, Ivan Rusev сказал:

я это не говорил

ага, вижу! промахнулся с автором (надо же как подставили ), это было к:

08.04.2021 в 09:56, maksimdag0 сказал:

delay_ms =4000, все работает, но если я поставлю задержку, например,  на 2 минуты

Это конечно поразительно, как можно просерфить весь интернет и не найти элементарного знания про то как числа сохраняются в переменных ...


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites
8 часов назад, ruhi сказал:

ага, вижу! промахнулся с автором (надо же как подставили ), это было к:

Это конечно поразительно, как можно просерфить весь интернет и не найти элементарного знания про то как числа сохраняются в переменных ...

Это вы мне? У меня по простому без наворотов.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Думаю смысла нет потому, что они не на 500 вольт как указано на этикетке, ради интереса разобрать акуратно один что там внутри напихали?
    • с помощью рук и фена выгните "коробок" для ввода и впаяйте в нужное место....пластик скорее всего АBS. По хорошему форму вернуть. Но, как понимаю, такой возможности нет
    • вот и ищу для этого человека с нужной квалификацией. Я то думал что вся сложность поместить изделие в красивый корпус. Чисто в дизайне. Да, я ошибся. Если бы знал, что будет столько сложностей, то поступил бы иначе.   если дороже, то мне проще его не доделывать а закрыть тему со звуком и покупать уже готовые вещи. Готовые изделия редко продают. Тут на форуме за почти год готовых изделий в объявлениях увидел меньше 15 шт. Хотя проверяю по привычке каждый день =) К тому же кризис добрался и до моей сферы, свободных денег мало.   расценки то на порядок повыше чем вы написали. И это не мое г...о, а г...о, которое мне продали под видом готового изделия.  Моя квалификация очень низка, но в сервисе делали люди с такой же... На вид там блок питания не очень, страшненький. Я на него грешил. Так в сервисе как раз его и меняли, подключали 100% рабочий. То есть уровень квалификации - максимум замена неисправных цельных блоков в случае их поломки.  Продавец говорил, что сделать разводку земель дело простое. Для меня это не так.  Поэтому и ищу знающего человека. И именно в своем городе, так как пересыл не интересен.
    • В дежурке работает только TNY, 5v Stb есть; транзисторы включены параллельно, вся высоковольтная часть работает; при отключенной защите есть 3,3в, по -12 напряжение чуть занижено, нет 12в и по 5в заниженное напряжение. Ну с внешнего источника подать на 12 вольтовую линию напряжение и смотреть откуда дым пойдёт. На отключенном блоке.
    • Так же пришли трёхвольтовые активные buzzer-ы. Работают громко. Минимальное рабочее напряжение 0,7 вольта.  
    • @Анатолий Андронович   Ты очень много написал, но так и не ответил, какие ты хочешь получить доказательства полетов на Луну? И ещё "забыл" написать, что там такое потеряло НАСА?  а то из твоего монолога я этого не понял.  Наш ЦУП, разведка, шпионаж, агентура  итд, следили за продвижением космических успехов нашего потенциального врага. Именно они являются первоисточником той информации по Аполлону, которую я здесь и приводил. Академики, доктора, инженеры и конструктора, издавшие книгу "Ракетостроение" тоже являются первоисточниками своих умозаключений. Ссылки на информацию, где первоисточником является НАСА, я ни разу не приводил.
×
×
  • Create New...