роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: помогите написать код
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



Здавствуйте! Подскажите как можно прервать функцию delay_ms?
Работаю в Code Vision AVR, идея такова:
- нажали кнопку B.1 запустилсся цикл с задержкой delay_ms(2000). а если надо прервать не дождавшись окончания функции и вернутся в начальное положение
порта B.0 ?


while (1)
{

if (PINDB.1==0)
{ PORTB.0=1;
delay_ms(2000);
PORTB.0=0;
}
else {PORTB.0=0; }
}

(Отредактировано автором: 27 Сентября, 2012 - 10:46:31)

 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



написать свою функцию задержки.
сделать задержку на таймере
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



єто и есть моя функция задержки, но надо как то зделать что бы можно было прервать ету функцию в любой момент. я не знаю как ето описать.помогите!
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



функция delay_ms(2000); ваша?
вот её и перепишите так, что б она проверяла внутри себя какой то флаг, который и будет её прерывать.
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



А можно еще не 2000 а 20 поставить, и 100 раз в цикле повторять, а когда надо то можно цикл прервать.
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



абсолютно согласен с nest - код там открытый, и перипесать все самому.
Роботов, или ваабще библиотеки Си не использовать, да?
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



Прошу спецов посмотреть вложеные файлы.
Идея такова:
- если не нажимать на кнопки то загораеться светодиод 6 и вкл реле

- при нажатии на кнопку1 загорается светодиод 1 и вкл реле на время 8часов вкл а 16часов выкл.
- при нажатии на кнопку2 загорается светодиод 2 и вкл реле на время 10часов вкл а 14часов выкл.
- при нажатии на кнопку3 загорается светодиод 3 и вкл реле на время 12часов вкл а 12часов выкл.
- при нажатии на кнопку4 загорается светодиод 4 и вкл реле на время 14часов вкл а 10часов выкл.
- при нажатии на кнопку5 загорается светодиод 5 и вкл реле на время 16часов вкл а 8часов выкл.
- при нажатии на кнопку ресет все обнуляется

Все работает но задержка не то время что надо.Подскажите почему?
Прикреплено изображение
IMG_1.JPG

(Отредактировано автором: 30 Сентября, 2012 - 14:07:43)

 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



файл прошивки на си
Скачать файл: бус.rar
Скачан раз: 196
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



Slava143 пишет:
но задержка не то время что надо.
- а вот тут я и сам не знаю работает ли 2313 на объявленной частоте 8МГц или другой. Подбирал ручками по часам.
Ваащет в даташите написано, что один из бит-фюзов отвечает за деление и еще регистры какие-то, но мой инглиш... Увы Замешательство
Лучьше поставте кварц
 
 Top
Slava143 Post Id



Лейтенант


Сообщений всего: 34
Дата рег-ции: Июль 2012  



короче забацал с циклом for все работает)))наконец то!
и без кварца.

(Отредактировано автором: 01 Октября, 2012 - 22:17:15)

 
 Top
Страниц (1): [1]
« С чего начать? »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru