"Тупит" функция delay((((

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

"Тупит" функция delay((((

Сообщение cat-dog-god0 »

Доброго времени суток!
Моделируя (в Proteus) мигающий светодиод на МК mega16, код программы:
PORTB.1=1;
delay_ms(300); // точка А
PORTB.1=0;
delay_ms(100);
...столкнулся с таким глюком: подключив осциллограф к PB1, он показывает равенство времени во включенном состоянии и в выключенном. Увеличение значения задержки в точке А, увеличивает время нахождения светодиода в выкл. состоянии. :shock:
Заменил delay на цикл for результат тот же...
В чем может быть глюк ???
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: "Тупит" функция delay((((

Сообщение Engineer_Keen »

Может delay() тут и не причем... Где весь код? Где схема?
Реклама
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Engineer_Keen писал(а):Может delay() тут и не причем... Где весь код? Где схема?
Это и есть весь код: т.к. здесь возникла проблема, я дальше не пошел.
Вот схема, на которой тестировал:
Вложения
Безымянный.jpg
(171.72 КБ) 571 скачивание
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: "Тупит" функция delay((((

Сообщение Engineer_Keen »

Ок. Тогда:
1) где настойка порта на вывод?
2) где оператор цикла?
Реклама
Эиком - электронные компоненты и радиодетали
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Engineer_Keen писал(а):Ок. Тогда:
1) где настойка порта на вывод?
2) где оператор цикла?
Порты настроены верно, использовал CodeWizardAVR
2) Описанный выше алгоритм есть в цикле while(1) функции main
Реклама
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: "Тупит" функция delay((((

Сообщение Meteor »

cat-dog-god0 писал(а):Порты настроены верно, использовал CodeWizardAVR
Не доверяйте автоматическим генераторам - о них столько сломали копий
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Реклама
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

В протеусе все работает правильно.
Выкладывайте код и проект.
(у вас
мигающий светодиод на МК mega16
, а на рисунке проц какой?)
at16.JPG
(68.43 КБ) 544 скачивания
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

МК : AT mega 16
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

cat-dog-god0 писал(а):МК : AT mega 16
Ну а я вижу у вас
a8.JPG
atmega8
(7.23 КБ) 493 скачивания
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

:oops: Уффф.... прошу прощения, AT mega 8 вы правы! Совсем голову забил таймерами и delay - слишком большие задержки :)
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Решил по приведенному выше коду сделать нечто вроде ШИМ. Т.е. изменяя время задержки во включенном состоянии и в выключенном и..... ...тоже - ничеггооо! Происходит резкий скачок, а дальше изменяется по собственному закону :(
Вложения
Безымянный.jpg
(177.84 КБ) 556 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

Телепаты в отпуске.
Выкладывайте код и проект протеуса.
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Вот:
Вложения
000.rar
(40.47 КБ) 150 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

Вы постоянно увеличиваете задержку, пока нажата кнопка. Какое значение будет содержать переменная задержки после отпускания кнопки?

В схеме конденсатор не нужен, даже мешает в работе схемы.

Файл протеуса поместите в папку с проектом(не забудьте по новой указать файл), станет возможна пошаговая отладка программы кнопкой Step.

В протеусе выставьте частоту проца.
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

codenamehawk писал(а):Вы постоянно увеличиваете задержку, пока нажата кнопка. Какое значение будет содержать переменная задержки после отпускания кнопки?
А как можно это исправить ??? Вводил задержку, не особо помогла
В схеме конденсатор не нужен, даже мешает в работе схемы.
А иначе в Proteus не смоделировать плавность включения и выключения. (Подразумевается, что в реальной схеме его не будет)
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

cat-dog-god0 писал(а): А как можно это исправить ??? Вводил задержку, не особо помогла

Код: Выделить всё

if (PINB.5==0)
{
         Pause++;
	delay_ms(30);          //пропустить дребезг контактов
	while(PINB.5==0);    //ждать отпускания кнопки
}
А иначе в Proteus не смоделировать плавность включения и выключения. (Подразумевается, что в реальной схеме его не будет)
Бред. В протеусе светодиод в пол накала гореть не может.
Выкиньте все детали(протеус быстрее будет работать), кроме проца и смотрите по осциллографу.
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Все равно скачок, плавности никакой...
Вложения
End.jpg
(131.12 КБ) 541 скачивание
Start.jpg
(135.16 КБ) 512 скачиваний
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

Ошибка в коде.
codenamehawk
Вымогатель припоя
Сообщения: 530
Зарегистрирован: Вт фев 09, 2010 17:52:26

Re: "Тупит" функция delay((((

Сообщение codenamehawk »

У меня работает.
000.rar
Проект.
(66.7 КБ) 169 скачиваний
cat-dog-god0
Прорезались зубы
Сообщения: 244
Зарегистрирован: Вс янв 09, 2011 00:34:11

Re: "Тупит" функция delay((((

Сообщение cat-dog-god0 »

Да! Тот файл что вы прислали работает на ура! :)) Спасибо!!!! :beer:
В чем секрет ???
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»