33-IRRC-Library (ATMega)

-diese Library kann mit Hilfe eines IR-Decoder-ICs (z.B. SFH 5110) die IR-Codes
von Fernbedienungen auslesen.

-es wird ein 8bit-Timer benutzt

-es gibt eine Library für den IR-Code : “RC5″ und
eine andere Library für den IR-Code : “SIRCS”

Funktionen :

1
2
void MK3_INIT_IRRC(void);            // zum initialisieren der IRRC-Funktionen
IRRC_Status_t MK3_IRRC_check(void);  // check ob ein IR-RC-Code empfangen wurde

Beispiel :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//-----------------------------------------------------------------------------
// Title      : bsp_ub056_mk3_ir_sircs
//-----------------------------------------------------------------------------
// Funktion   : Infrarot-Daten auslesen und anzeigen (SIRCS)
// Schaltung  : myAVR MK3
//-----------------------------------------------------------------------------
// Prozessor  : ATMega2560
// Takt       : 16 MHz
// Sprache    : C
// Date       : 09.11.2012
// Version    : 1.0
// Autor      : UB
//-----------------------------------------------------------------------------
#define F_CPU 16000000
#include <avr/io.h>
#include <ub_mk3_2560/MK3_2560_LCD.h>
#include <ub_mk3_2560/MK3_2560_IR_SIRCS.h>
 
//-----------------------------------------------------------------------------
// Hinweis : Quick-Jumper Port-C+A muss gesetzt sein
// - ein IR-Sensor (z.B. SFH-5110) muss an Port-L Bit-4 angeschlossen sein
// - eine Fernbedienung mit Code-Typ : SIRCS muss benutzt werden
//-----------------------------------------------------------------------------
int main (void)
{
  IRRC_Status_t status;
  unsigned int n;
  unsigned char m=0;
 
  MK3_INIT_LCD(); // init des LCD
  MK3_LCD_CLEAR(); // LCD loeschen
  MK3_LCD_LIGHT(true); // beleuchtung einschalten
 
  MK3_LCD_STRING_AT(0,0,"IR-Test [Code:SIRCS]");
 
  // IR-Funktion initialisieren
  MK3_INIT_IRRC();
 
  while (true)
  {
    // IR-Status abfragen
    status=MK3_IRRC_check();
    if(status!=IRRC_NO_CMD) {
      // wenn ein IR-Commando empfangen wurde
      if(status==IRRC_CMD_OK)     MK3_LCD_STRING_AT(0,16,"RX=OK    ");
      if(status==IRRC_CMD_REPEAT) MK3_LCD_STRING_AT(0,16,"RX=Repeat");
      if(status==IRRC_CMD_ERR)    MK3_LCD_STRING_AT(0,16,"RX=Error ");
      if(status==IRRC_TYP_ERR)    MK3_LCD_STRING_AT(0,16,"TYP=Error");
 
      // anzeigen der empfangenen Bytes
      MK3_LCD_STRING_AT(0,24,"Data=");
      for(n=0;n<IRRC_DATA_BYTES;n++) { MK3_LCD_PRINT_UTYP(IRRC.ir_code[n],HEX_U2); MK3_LCD_PRINT_STRING(","); } // Typ anzeigen if(IRRC.ir_typ==IRRC_SIRCS) MK3_LCD_STRING_AT(0,32,"Typ=SIRCS"); if(IRRC.ir_typ==IRRC_RC5) MK3_LCD_STRING_AT(0,32,"Typ=RC5 "); if(IRRC.ir_typ==IRRC_UNDEFINED) MK3_LCD_STRING_AT(0,32,"Typ=? "); // Symbol anzeigen m++; if(m>3) m=0;
      if(m==0) MK3_LCD_STRING_AT(0,48,".   ");
      if(m==1) MK3_LCD_STRING_AT(0,48,"..  ");
      if(m==2) MK3_LCD_STRING_AT(0,48,"... ");
      if(m==3) MK3_LCD_STRING_AT(0,48,"....");
    }
  }
  return 0;
}

Hier die Library zum download :

UB_MK3_2560_IRRC_v100


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.