Skocz do zawartości

RC5 odbiór


Rachel

Pomocna odpowiedź

Witam !

Piszę program na Atmega16 w C. Ma on za zadanie zmienić stan wyjść, gdy wcisnę przycisk na pilocie.

Zgodnie z tym : https://www.forbot.pl/forum/topics40/c-atmega8-i-rc5-vt2533.htm?highlight=rc5

Napisałem taki program :

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

volatile int rc5_getkey;
volatile int rc5_toggle;
volatile int rc5_addr;
volatile int rc5_comm;

void init(void)
{
DDRB = 0xFF;
DDRA = 0x00;
sei();

}

int main(void)
{
init();
while(1){
if(rc5_getkey){
if(rc5_addr==0x05)
       {
       PORTB ^=0xFF;
       _delay_ms(500);
       }
       rc5_getkey=0;
       rc5_comm = 0;
       rc5_addr = 0;
       rc5_toggle = 0;

   }

} 



}



SIGNAL (INT1_vect)
{
   _delay_us(200);
for (int i = 0 ; i< 2; i++){
   _delay_us(1778);
}

   rc5_toggle =(PIND & 0x08) ? 0 : 1;
   _delay_us(1778);

for(int i = 0; i < 5; i++){ 
   rc5_addr = (PIND & 0x08) ? (rc5_addr<<1) : ((rc5_addr<<1) | 0x01);
   _delay_us(1778);
}

for(int i = 0; i < 6; i++){ 
   rc5_comm = (PIND & 0x08) ? (rc5_comm<<1) : ((rc5_comm<<1) | 0x01);
   _delay_us(1778);
}
   _delay_ms(10);

   rc5_getkey=1;

GIFR |= (1<<INTF1);
} 

Układ nie reaguje, wszystko dobrze podłączyłem, po wciśnięciu klawisza, rzeczywiście idą impulsy z odbiornika podczerwieni TSOP.

Wie ktoś co tu jest grane ? A może podrzucicie mi jakąś bibliotekę lub inny kod do obslugi RC5 ?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.