Witam próbuje zmieniać kierunek obrotu przerobionego serwomechanizmu w za pomocą pilota w kodzie RC5.
Samo odbieranie kodu naciśniętego przycisku oczywiście działa. (przykład z zapalaniem diody).
Jak widać na obrazku poniżej do zmiany kierunku służą wejścia układu 1A,2A,3A,4A. wszystkie są podpięte pod port C.
pojedyncze ustawienie kierunku w pętli while() jak również przed nią oczywiście działa
np PORTC=0x30; //jeden kierunek
PORTC=0x48; //drugi kierunek
Problem następuje w momencie kiedy kierunek chce zmienić po wystąpieniu konkretnego warunku. Silniczki przestają reagować i sama Atmega wydaje się zawieszać. jak powinno się to programowo rozwiązać?
[/code]
Samo odbieranie kodu naciśniętego przycisku oczywiście działa. (przykład z zapalaniem diody).
Jak widać na obrazku poniżej do zmiany kierunku służą wejścia układu 1A,2A,3A,4A. wszystkie są podpięte pod port C.
pojedyncze ustawienie kierunku w pętli while() jak również przed nią oczywiście działa
np PORTC=0x30; //jeden kierunek
PORTC=0x48; //drugi kierunek
Problem następuje w momencie kiedy kierunek chce zmienić po wystąpieniu konkretnego warunku. Silniczki przestają reagować i sama Atmega wydaje się zawieszać. jak powinno się to programowo rozwiązać?
PORTC=0x30;
while(1)
{
char liczba=0;
liczba=rc5_odczyt(pojedyncze);
if (liczba==16) //naciśnięty przycisk "lewy" na pilocie
{
PORTC=0x48; //zmiana kierunku
PORTB|=_BV(3); //zapalenie diody
}
[/code]