AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
19.05.2014, 08:53
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проблема с функцией задержки
Возникла проблема:
Код:
|
delay_ms(3000);
PORTB.2 = 0;
delay_ms(3000);
PORTB.2 = 1; |
На порте 2В висит управление рэле, оно включается нулем, используется стандартная функция задержки времени, компилятор CVAVR. Нужно его включить через 3 секунды на 3 секунды, а на деле получается через 6 с. Пробовал различные числа в первой и во второй задержке и пришел к выводу, что вторая задержка является суммой первой и второй. Почему складываются предыдущая и текущая задержки?
|
|
|
|
19.05.2014, 09:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Проблема с функцией задержки
Потому что так написана подпрограмма delay_ms
|
|
|
|
19.05.2014, 09:45
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от insiderbik
|
Почему складываются предыдущая и текущая задержки?
|
"- Длиныый - да, толстый - да, твердый - да, а вот что с ребрами - это Вам показалось"
Никто там никого и никуда не складывает.
Хотите точно и предсказуемо - делайте на таймере.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
19.05.2014, 11:00
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от akegor
|
"- Длиныый - да, толстый - да, твердый - да, а вот что с ребрами - это Вам показалось"
Никто там никого и никуда не складывает.
Хотите точно и предсказуемо - делайте на таймере.
|
точно складывается (изменял времена и первые и вторые) первая вызывается на 3 сек, а вторая затем на 6 сек, хотя написана тоже на 3.
|
|
|
|
19.05.2014, 11:08
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,772 раз(а) в 5,896 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от insiderbik
|
точно складывается
|
У меня не складывается. Остальное
Сообщение от akegor
|
Хотите точно и предсказуемо - делайте на таймере.
|
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
19.05.2014, 11:29
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от akegor
|
У меня не складывается.
|
блиииннн ну тогда не знаю, придется первую оставлять, а вторую таймером замерить. а при каких условиях будет складываться, что вообще на это влияет???
|
|
|
|
19.05.2014, 12:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от insiderbik
|
а при каких условиях будет складываться
|
Посмотри код в функции delay_ms, откуда нам знать, что там написано?
|
|
|
|
19.05.2014, 15:10
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от niXto
|
Посмотри код в функции delay_ms, откуда нам знать, что там написано?
|
подключаемая функция delay.h содержит следующие строки:
Код:
|
// CodeVisionAVR C Compiler
// (C) 1998-2000 Pavel Haiduc, HP InfoTech S.R.L.
#ifndef _DELAY_INCLUDED_
#define _DELAY_INCLUDED_
#pragma used+
void delay_us(unsigned int n);
void delay_ms(unsigned int n);
#pragma used-
#endif |
|
|
|
|
19.05.2014, 20:27
|
|
Прописка
Регистрация: 11.04.2006
Сообщений: 197
Сказал спасибо: 80
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
|
Re: Проблема с функцией задержки
Не чего странного! Частота камня не совпадает с выставленной в компиляторе!
|
|
|
|
20.05.2014, 08:42
|
|
Временная регистрация
Регистрация: 20.06.2009
Сообщений: 51
Сказал спасибо: 44
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Проблема с функцией задержки
Сообщение от awtoap
|
Не чего странного! Частота камня не совпадает с выставленной в компиляторе!
|
все совпадает, на плате и в компиляторе стоит - 18.4320 МГц, камень ATmega88PA. Если бы не совпадало то задержки вычислялись бы неверно, но они верно числятся, только вторая является суммой второй и первой - вот в чем затык
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:28.
|
|