ASURO Library  2.80
Makrodefinitionen | Funktionen | Variablen
rc5.h-Dateireferenz
#include <inttypes.h>
Include-Abhängigkeitsdiagramm für rc5.h:
Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define RC5_TOGGLE   0x0800
 
#define RC5_ADDRESS   0x07C0
 
#define RC5_COMMAND   0x103F
 
#define RC5_MASK   (RC5_COMMAND)
 

Funktionen

void InitRC5 (void)
 Initialize the RC5 Receiver.
 
uint16_t ReadRC5 (void)
 Read last received RC5 Data.
 
void IsrRC5 (void)
 RC5 interrupt service routine
called by timer overflow isr ever 27,7 micro seconds.
 

Variablen

volatile uint16_t RC5data
 
volatile uint8_t enableRC5
 

Makro-Dokumentation

#define RC5_ADDRESS   0x07C0

Der Adressbereich

Definiert in Zeile 36 der Datei rc5.h.

#define RC5_COMMAND   0x103F

Der Kommandobereich

Definiert in Zeile 37 der Datei rc5.h.

#define RC5_MASK   (RC5_COMMAND)

Definiert in Zeile 39 der Datei rc5.h.

#define RC5_TOGGLE   0x0800

/file rc5.h /brief Definitionen fuer die Dekodierung von RC5-Fernbedienungs-Codes /author Benjamin Benz (bbe@h.nosp@m.eise.nosp@m..de), m.a.r.v.i.n

/version V001 - 20.12.2005 - Benjamin Benz (bbe@h.nosp@m.eise.nosp@m..de) Version fuer den c't-Bot V002 - 11.02.2007 - m.a.r.v.i.n portiert fuer den ASURODas RC5-Toggle-Bit

Definiert in Zeile 35 der Datei rc5.h.

Dokumentation der Funktionen

void InitRC5 ( void  )

Initialize the RC5 Receiver.

Init IR-System

Definiert in Zeile 185 der Datei rc5.c.

{
IR_DDR &= ~IR_PIN; // Pin auf Input
IR_PORT |= IR_PIN; // Pullup an
enableRC5 = 1;
}
void IsrRC5 ( void  )

RC5 interrupt service routine
called by timer overflow isr ever 27,7 micro seconds.

Interrupt Serviceroutine wird alle 27.7us aufgerufen

Definiert in Zeile 79 der Datei rc5.c.

{
// sample lesen
uint8_t sample = 1;
if (enableRC5 && !(count36kHz % 8))
{
if ((IR_PINR & (1<<IR_PIN)) != 0)
{
sample = 0;
}
// bittimer erhoehen (bleibt bei 255 stehen)
if (RC5bittimer<255)
{
RC5bittimer++;
}
// flankenerkennung
if ( RC5lastsample != sample)
{
if (RC5bittimer<=IR_SAMPLES_PER_BIT_MIN)
{
// flanke kommt zu frueh: paket verwerfen
RC5bitcount=0;
}
else
{
// Startbit
if (RC5bitcount==0)
{
if ( (sample==1) && (RC5bittimer>IR_PAUSE_SAMPLES) )
{
// Startbit speichern
RC5data_tmp = 1;
RC5bitcount++;
}
else
{
// error
RC5data_tmp = 0;
}
// bittimer-reset
RC5bittimer = 0;
// Bits 2..14: nur Flanken innerhalb des Bits beruecksichtigen
}
else
{
if (RC5bittimer >= IR_SAMPLES_PER_BIT_EARLY)
{
if (RC5bittimer<=IR_SAMPLES_PER_BIT_LATE)
{
// Bit speichern
RC5data_tmp = (RC5data_tmp<<1) | sample;
RC5bitcount++;
}
else
{
// zu spaet: paket verwerfen
RC5bitcount = 0;
}
// bittimer-reset
RC5bittimer = 0;
}
}
}
}
else
{
// keine flanke innerhalb bitzeit?
if (RC5bittimer > IR_SAMPLES_PER_BIT_LATE)
{
// 14 bits gelesen?
if (RC5bitcount==14)
{
RC5data = RC5data_tmp;
}
// paket verwerfen
RC5bitcount = 0;
}
}
// sample im samplepuffer ablegen
RC5lastsample = sample;
}
}
uint16_t ReadRC5 ( void  )

Read last received RC5 Data.

Rückgabe
last received RC5 Data

IR-Daten lesen

Rückgabe
wert von ir_data, loescht anschliessend ir_data

Definiert in Zeile 175 der Datei rc5.c.

{
uint16_t retvalue = RC5data;
RC5data = 0;
return retvalue;
}

Variablen-Dokumentation

volatile uint8_t enableRC5

schaltet die RC5 Abfrage ein/aus

Definiert in Zeile 73 der Datei rc5.c.

volatile uint16_t RC5data

letztes komplett gelesenes RC5-Paket

letztes komplett gelesenes RC5-paket

Definiert in Zeile 72 der Datei rc5.c.