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


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

> Описание: Не корректный сигнал с портов
ems2811 Post Id


Рядовой


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



Здравствуйте. МК ATMega16. Пишу прогу для манипулятора и столкнулся с такой проблемой, в коде просто вкл/выкл порты с задержкой. Но порты B6,B7 тормозят странным образом. Иногда не успевают включится, иногда долго включаются (в другом куске кода). Вот проблемная часть кода:
CODE:
void delay(int ms){
for(;ms;ms--)
_delay_ms(1);
}
//------------------------------------------много case'ов----------------
case 11:
for(int i=0;i<steps;i++){
PORTD=(1<<PORTD3);
PORTB=(1<<PORTB7);
delay(time);
PORTD=(0<<PORTD3);
PORTB=(1<<PORTB6);
delay(time);
PORTB=(0<<PORTB7);
PORTD=(1<<PORTD2);
delay(time);
PORTB=(0<<PORTB6);
PORTD=(1<<PORTD3);
delay(time);
PORTD=(0<<PORTD2);
PORTD=(0<<PORTD3);
}
sendpc("ready");
break;

картинка осциллографа из протеуса прилагается (Порядок сигналов сверху вниз: D3,B7,B6,D2)
Прикреплено изображение
osc.jpg

(Отредактировано автором: 11 Мая, 2013 - 00:28:18)

 
 Top
ems2811 Post Id


Рядовой


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



Простите за незнание. Разобрался, нужно было использовать PORTD |= 1<<3;PORTD &= ~(1<<4);

(Отредактировано автором: 12 Мая, 2013 - 20:55:43)

 
 Top
cjA Post Id



Генерал


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



ems2811нет
 
 Top
ems2811 Post Id


Рядовой


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



ну не только использование указанных способов вкл., но и алгоритм поправил. Шаг с ипользованием 2 фаз двигателя. вот такой получился:
case 10:
CODE:
case 11:
PORTD|=1<<PORTD3;
delay(time);
for(int i=0;i<steps;i++){
PORTB|=1<<PORTB7;
delay(time);
PORTD&=~(1<<PORTD3);
PORTB|=1<<PORTB6;
delay(time);
PORTB&=~(1<<PORTB7);
PORTD|=1<<PORTD2;
delay(time);
PORTB&=~(1<<PORTB6);
PORTD|=1<<PORTD3;
delay(time);
PORTD&=~(1<<PORTD2);
}
delay(time);
PORTD&=~(1<<PORTD3);
sendpc("ready");
break;

(Отредактировано автором: 13 Мая, 2013 - 23:15:13)

 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


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





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