вот схемка с myrobot.ru - кстати сайт этот не работает...
и тескт программки, - только не сильно пинайте.
отличие на моей дуплилке в том, что на PIND2 повешен ещё один фототранзистор.
- Код: Выделить всё • Развернуть
/////////////////////текст прогаммки
#include <avr/io.h>
#include <avr/delay.h>
int main(void)
{
DDRC = 0xff;
DDRD = 0x00;
PORTD = 0xff;
unsigned short counter;
unsigned short turn;
counter = 0;
turn = 0;
while (counter != 100)
{
_delay_loop_2(15000);
counter++;
}
while(1)
{
if ( !(PIND & (1<<PIND1)) || !(PIND & (1<<PIND2)) )
{
if (PIND & (1<<PIND1))
turn = 1;
if (PIND & (1<<PIND2))
turn = 2;
if (PIND & (1<<PIND2) && PIND & (1<<PIND1))
turn = 3;
if (turn == 1){
PORTC &= ~_BV(PC1);
PORTC |= _BV(PC2);
PORTC |= _BV(PC3);
PORTC |= _BV(PC4);
}
if (turn == 2){
PORTC |= _BV(PC1);
PORTC |= _BV(PC2);
PORTC &= ~_BV(PC3);
PORTC |= _BV(PC4);
}
if (turn == 3){
PORTC &= ~_BV(PC1);
PORTC |= _BV(PC2);
PORTC &= ~_BV(PC3);
PORTC |= _BV(PC4);
}
if (turn != 3){
counter = 0;
while (counter < 100)
{
_delay_loop_2(600);
counter++;
}
}
}
else
{
PORTC |= _BV(PC1);
PORTC &= ~_BV(PC2);
PORTC |= _BV(PC3);
PORTC &= ~_BV(PC4);
}
}
}
и вот вся штука в том, что функция delay() из примера с myrobot.ru у меня почему-то не работает, хотя всё компилируется без ошибок, функция есть в delay.h
ну вот...
контроллер ATmega8, дравер L293
Используйте тег CODE! <V>