läsa av SAMSUNG IR fjärr.

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Icecap: De va ganska dyra, och värkar relativt svåra att använda. Men det kan vara bra att veta att de finns i frammtiden :D

Mvh
Användarvisningsbild
Icecap
Inlägg: 26662
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Vi kanske har olika synsätt med priset men besvärliga är de definitivt inte! Så länge du har en UART på µC'n kan du inte få det enklare.
Användarvisningsbild
manicken
Inlägg: 91
Blev medlem: 10 februari 2006, 14:20:59
Ort: DEGEBERGA

Inlägg av manicken »

denna kod har jag skrivit till en PIC som använder en ingång med avbrott
den decodar signalen från en NEC fjärrkontrol

#define IRBUFFERSIZE 4

void initIR(void); // only called in main once
void IRreceive(void); //only called in interrupt

char bank3 IRbytes[IRBUFFERSIZE];
char IRtime = 0, IRbyteCount=0, IRint = 0;

void main(void){
initPIC(); // sets port directions
initIR();
while (1){
if (IRtime>0x15){
IRcheck(); // checks received decoded codes
}
}
}

void initIR(void){
INTE=1;
T1CON=0x20;// based on 8 MHz crystal (1:4 prescale)
TMR1ON=1;
GIE = 1:
}

void IRreceive(void){
INTF=0;
if (INTEDG)
{
TMR1ON=0;
INTEDG=0;
TMR1H=0;TMR1L=0;
TMR1ON=1;
}
else // INTEDG==0
{
TMR1ON=0;
INTEDG=1;
IRtime = ((TMR1H<<8)+TMR1L)/50;
if (IRtime>0x15){ IRint=255; IRbyteCount=0;}
else if ((IRtime>=0x03)&&(IRtime<=0x05))
{
IRbytes[IRbyteCount] = IRbytes[IRbyteCount]>>1;
IRbytes[IRbyteCount] = IRbytes[IRbyteCount] & 0x7F;
}
else if ((IRtime>=0x0E)&&(IRtime<=0x10))
{
IRbytes[IRbyteCount] = IRbytes[IRbyteCount]>>1;
IRbytes[IRbyteCount] = IRbytes[IRbyteCount] | 0x80;
}
IRint++;
if ((IRint==8)||(IRint==16)||(IRint==24)||(IRint==32)) IRbyteCount++;
TMR1H=0; TMR1L=0;
}
INTF=0;
}
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

"Så länge du har en UART på µC'n kan du inte få det enklare."
:eh:, då måste man lära sig använda den också :oops:

Jag brukar alltid köra egna "hitte på" protokoll när jag ska köra seriel komunikation :P

manicken: Den va lite kortare än min kod :P. Men C förstår jag inte mycket av :)

Mvh
Skriv svar