He estado trabajando en este proyecto durante algún tiempo y me he topado con un muro desde que soy nuevo en el uso de pickit3 y el lenguaje C no es mi fuerte. Básicamente, lo que estoy tratando de hacer es usar dos microcontroladores para comunicarse entre sí mediante un infrarrojo. Pude programar el primer PIC que crea diferentes pulsos usando varias combinaciones de entrada usando 4 interruptores. Por ejemplo (0000 = 200 us pulso, 0001 = 250 us pulso). ahora para el receptor necesito capturar los pulsos y visualizarlos usando 4 LED (200us = 0000, 250us = 0001). El siguiente código es el código que hice para el primer microcontrolador. MI pregunta es cómo haría la parte del código del receptor. Sé que debo usar Timer1 o Timer0 después de leer las hojas de datos. pero no he podido resolver algo incluso usando otros ejemplos en los que las personas usan estos contadores / temporizadores.
main(){
ANSEL =0b000000;
TRISC=0b110111;
PORTC=0b000000;
OSCCAL=0b11111;
while(1){
if (RC0==0 && RC1==0 && RC2==0 && RC4==0){
RC3=1;
__delay_us(183);
RC3=0;
__delay_us(166);}
else if (RC0==0 && RC1==0 && RC2==0 && RC4==1){
RC3=1;
__delay_us(229);
RC3=0;
__delay_us(196);}
else if (RC0==0 && RC1==0 && RC2==1 && RC4==0){
RC3=1;
__delay_us(276);
RC3=0;
__delay_us(234);}
else if (RC0==0 && RC1==0 && RC2==1 && RC4==1){
RC3=1;
__delay_us(322);
RC3=0;
__delay_us(264);}
else if (RC0==0 && RC1==1 && RC2==0 && RC4==0){
RC3=1;
__delay_us(368);
RC3=0;
__delay_us(318);}
else if (RC0==0 && RC1==1 && RC2==0 && RC4==1){
RC3=1;
__delay_us(415);
RC3=0;
__delay_us(348);}
else if (RC0==0 && RC1==1 && RC2==1 && RC4==0){
//500us
RC3=1;
__delay_us(460);
RC3=0;
__delay_us(385);}
else if (RC0==0 && RC1==1 && RC2==1 && RC4==1){
//550us
RC3=1;
__delay_us(508);
RC3=0;
__delay_us(415);}
else if (RC0==1 && RC1==0 && RC2==0 && RC4==0){
//600us
RC3=1;
__delay_us(555);
RC3=0;
__delay_us(500);}
else if (RC0==1 && RC1==0 && RC2==0 && RC4==1){
//650us
RC3=1;
__delay_us(600);
RC3=0;
__delay_us(530);}
else if (RC0==1 && RC1==0 && RC2==1 && RC4==0){
//700us
RC3=1;
__delay_us(646);
RC3=0;
__delay_us(568);}
else if (RC0==1 && RC1==0 && RC2==1 && RC4==1){
//750us
RC3=1;
__delay_us(694);
RC3=0;
__delay_us(600);}
else if (RC0==1 && RC1==1 && RC2==0 && RC4==0){
//800us
RC3=1;
__delay_us(738);
RC3=0;
__delay_us(650);}
else if (RC0==1 && RC1==1 && RC2==0 && RC4==1){
//850us
RC3=1;
__delay_us(785);
RC3=0;
__delay_us(680);}
else if (RC0==1 && RC1==1 && RC2==1 && RC4==0){
//900us
RC3=1;
__delay_us(828);
RC3=0;
__delay_us(718);}
else if (RC0==1 && RC1==1 && RC2==1 && RC4==1){
//950us
RC3=1;
__delay_us(880);
RC3=0;
__delay_us(750);}
}}