pokusavam da dekodiram protokol daljinca ali nesto mi ne ide u simulaciji..... Evo samo logike kako bi trebalo da radi....
Evo za simulaciju kako sam napravio:
unsigned int i=0;
void interrupt(){
if(T0IF_bit){
switch(i){
case 0: PORTB=1; i=1; break;
case 1: PORTB=0; i=2; break;
case 2: PORTB=0; i=3; break;
case 3: PORTB=1; i=4; break;
case 4: PORTB=0; i=5; break;
case 5: PORTB=1; i=6; break;
case 6: PORTB=1; i=0; break;
}
TMR0=100;
T0IF_bit=0;
}
}
void main() {
OPTION_REG=0;
INTCON=0b10100000;
TRISB=0;
PORTB=0;
TMR0=100;
while(1){
}
}
ovim sam predstavio daljinski koji na svakih x vremena menja stanje porta B.B0
unsigned int prijem=0,i=0;
void interrupt(){
if(T0IF_bit){
i++;
prijem=prijem*2; //siftujem
prijem=prijem+PORTB.B0;
TMR0=100;
T0IF_bit=0;
if(i==7) INTCON=0; // kada primi 7 bitova zavrsio je
}
INTF_bit=0;
}
void main() {
OPTION_REG=0;
INTCON=0b10110000;
TRISB=1;
PORTB=0;
TMR0=100;
while(1){
}
}
ovako bi izgledao prijem, gde ce u promenljivu "prijem" biti smesten protokol
vreme slanja i vreme prijema su isti... Ovo naravno ne predstavlja stvarni daljinski nego mi je bitno da ovo proradi, pa cu posle lako prilagoditi frekvenciji daljinskog....
u simulaciji kada to povezem nikako ne mogu da iscitam sta mi prvi posalje....
Unapred hvala