Witam!
Znalazłem program do odbioru kodu w standardzie RC5 (załączony do postu). Chciałem zaadaptować program do swojego projektu. Kod który aktualnie jest nadawany z pilota, jest przechowywany w zmiennej globalnej "kod". Poniżej kilka lini programu który napisałem:
Oznacza to (wg mnie), że jeżeli nie podam stanu wysokiego na piny PD0 oraz PD1, to stan portu A nie powinien się zmienić, obojętnie co nacisnę na pilocie. Niestety tak się nie dzieje
Stan portu zmienia się za każdym razem. Próbowałem tez odwrotnie podłączać przyciski (zamiast "bit_is_set" używałem "bit_is_clear"). Nic to nie dało. Zauważyłem jednak, że program działa w momencie, gdy np. używam "bit_is_clear" (przycisk powinien byc podłączony do masy), ale podłączam przycisk do "plusa". Po wciśnięciu przycisku program działa prawidłowo i zmiana kodu z pilota nie zmienia stanu portu A. Niestety nie udało mi sie zrobić tak, aby w momencie gdy żaden przycisk nie jest wciśnięty stan portu się nie zmieniał. Proszę o pomoc. Z góry, bardzo dziękuję. Pozdrawiam.
Ps. Czy wiecie może jak to zrobić, żeby kod działał tylko w momencie, gdy trzymam przycisk na pilocie? W sensie, że jak puszczę przycisk, żeby się kod zerował.
Znalazłem program do odbioru kodu w standardzie RC5 (załączony do postu). Chciałem zaadaptować program do swojego projektu. Kod który aktualnie jest nadawany z pilota, jest przechowywany w zmiennej globalnej "kod". Poniżej kilka lini programu który napisałem:
if(bit_is_set(PIND,0))
{
kod_plus = kod;
PORTA = ~(kod_plus & 0x3f);
}
else
{
if(bit_is_set(PIND,1))
{
kod_minus = kod;
PORTA = ~(kod_minus & 0x3f);
}
}
if(kod_plus == kod) PORTC = 0b00000001;
else
{
if(kod_minus == kod) PORTC = 0b00000010;
else
{
PORTC = 0b00000000;
}
}Oznacza to (wg mnie), że jeżeli nie podam stanu wysokiego na piny PD0 oraz PD1, to stan portu A nie powinien się zmienić, obojętnie co nacisnę na pilocie. Niestety tak się nie dzieje
Ps. Czy wiecie może jak to zrobić, żeby kod działał tylko w momencie, gdy trzymam przycisk na pilocie? W sensie, że jak puszczę przycisk, żeby się kod zerował.