Die Funktionen einfach ins Programm einfügen.
Um z.B. auf Kanal 1 zu schalten, schreibe:
fkt_rc5_senden(1);
oder um raufzuschalten:
fkt_rc5_senden(RC5_RAUF);
Mit fkt_rc5_empfangen() wartest du solange bis ein IR Signal erkannt wurde. Falls es sichum ein RC5 Signal handelte, wird dieser Rückgabewert zurückgegeben, z.B. 1 wenn Taste 1 gedrückt wurde.
Code:#define RC5_KOMMANDOBITS 6 #define RC5_LEER 0x3000 #define RC5_LAUTER 0x10 #define RC5_LEISER 0x11 #define RC5_RAUF 0x20 #define RC5_RUNTER 0x21 unsigned char fkt_rc5_empfangen(void) { unsigned char n=0,erg=0; DDRD &= ~(1<<PD0); PORTD|=(1<<PD0); while(PIND & (1 << PD0)); Sleep(250); Sleep(250); Sleep(14); for(n=0;n<RC5_KOMMANDOBITS;n++) { if(PIND & (1 << PD0)) erg |= 1<<(RC5_KOMMANDOBITS-n-1); Sleep(64); } return erg; } void fkt_rc5_senden(unsigned char kommando) { unsigned char n=0; unsigned int daten=0; daten = RC5_LEER | kommando; //Pin PD1 als Ausgang setzen und LED ausschalten. DDRD |= (1<<PD1); PORTD |= (1<<PD1); //Daten senden for(n=0;n<14;n++) { if(!( daten & (1<<(13-n)) ) ) PORTD &= ~(1<<PD1); else PORTD |= (1<<PD1); Sleep(32); if(( daten & (1<<(13-n)) )) PORTD &= ~(1<<PD1); else PORTD |= (1<<PD1); Sleep(32); } //LED ausschalten PORTD |= (1<<PD1); return; }







Zitieren

Lesezeichen