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


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

> Без описания
yopopolo Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Апр. 2013  



укажите пожалуйста на ошибки
attiny13
cvavr
язык Cи

pb0 вход
pb1 вход
pb2 выход (0)
pb3 выход (1)
pb4 вход
pb5 вход

к pb0 подключена кнопка;к pb2 и pb3 светодиоды
нужно что бы после нажатия кнопки светодиоды меняли индикацию на противоположную

у меня получилось так:

while (PINB.0==0)
{ if (PORTB.2=0)
{ PORTB.2=1;
PORTB.3=0;
delay_ms (1000)
}
else { PORTB.2=0;
PORTB.3=1;
delay_ms (1000)
};
скомпилировалось,в камень залил,но на кнопку не реагирует и в портах pb2=1;pb3=0
 
 Top
Роботов Post Id



Гуру


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



Кнопки как подключены? К плюсу или к минусу? Подтяжка есть?
И потом, у вас бесконечный цикл выполняется пока на входе PB0 держится ноль, как только станет 1 прога из цикла вывалится.
(Добавление)
Может так?
while (1)
{
if(PINB.0==0)
{
PORTB.2=0;
PORTB.3=1;
}
else
{
PORTB.2=1;
PORTB.3=0;
}
}

(Отредактировано автором: 22 Апреля, 2013 - 23:30:54)

 
 Top
yopopolo Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Апр. 2013  



так тож пробовал. и подключал по разному.
заработало,только когда ,при создании проекта указал attiny13a , вместо attiny13.до этого думал что разницы никакой (
 
 Top
yopopolo Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Апр. 2013  



и еще вопрос:
какой delay_ms можно максимально выставить?
можно ли для увеличения задержки написать две строки подряд с delay_ms? или в таком варианте лучше воткнуть какую нибудь бесполезную функцию между двумя delay?
 
 Top
Роботов Post Id



Гуру


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



yopopolo пишет:
можно ли для увеличения задержки написать две строки подряд с delay_ms?

Можно, хоть десять. Улыбка
yopopolo пишет:
или в таком варианте лучше воткнуть какую нибудь бесполезную функцию между двумя delay?

Можно delay в цикле использовать.
(Добавление)
На мой взгляд, delay_ms() не очень хорошая функция, пока она работает, МК ничего делать не сможет. Лучше для длительных задержек использовать аппаратный таймер.
 
 Top
yopopolo Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Апр. 2013  



спасибо за ответы.
программирование МК ,у меня пока в процессе изучения.до аппаратного таймера еще не дошел )) но для общего понимания "delay" пока хватает.

еще вопрос: существует ли функция для реализации данной задачи? или как такое можно сделать?
например две фиксируемые кнопки,каждая подключена к свей ноге МК(PB0 и PB1). и ,допустим, один светодиод подключен,тоже, к своей ноге МК(PB2)

логика кнопок простая: при появлении "1" на кнопке,на светодиод подаём тоже "1".
но! необходимо,чтобы программа реагировала на последнее изменение любой кнопки.
если мы одной кнопкой включили светодиод и она осталась во включенном положении,а потом второй выключили,соответственно программа должна среагировать на команду второй кнопки.и наоборот.

всё познаю,изучением примеров программ.такого еще не встречал.может кто нибудь объяснит?
 
 Top
Роботов Post Id



Гуру


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



yopopolo пишет:
логика кнопок простая: при появлении "1" на кнопке,на светодиод подаём тоже "1".
но! необходимо,чтобы программа реагировала на последнее изменение любой кнопки.
если мы одной кнопкой включили светодиод и она осталась во включенном положении,а потом второй выключили,соответственно программа должна среагировать на команду второй кнопки.и наоборот.

Вам надо реагировать на передний фронт нажатия кнопки. Удобно делать на внешних прерываниях. Тогда не важно будет, нажата кнопка в данный момент или нет, важен будет только факт момента нажатия.
 
 Top
yopopolo Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Апр. 2013  



уже сложновато пошло ))
написал в личку
 
 Top
Страниц (1): [1]
« С чего начать? »


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





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