]> cloudbase.mooo.com Git - irmp.git/blobdiff - irmp-main-pic-12F1840.c
Version 3.0.7 - added SAMSUNGAH protocol, improved some code for ESP8266
[irmp.git] / irmp-main-pic-12F1840.c
index 821e9e544f2574e7e6038b34b93470cacdd8116f..3ade38dfc1fecb3c347617ef1e1758226e87db2c 100644 (file)
@@ -1,11 +1,11 @@
 /*---------------------------------------------------------------------------------------------------------------------------------------------------\r
  * irmp-main-pic-12F1840.c - example main module for PIC 12f1840\r
- * \r
+ *\r
  * IR decoder using IRMP\r
  *\r
  * (c) 2014 Wolfgang Strobl (news4 at mystrobl.de) 2014-03-12:2014-07-20\r
  *\r
- * $Id: irmp-main-pic-12F1840.c,v 1.4 2016/09/09 08:01:11 fm Exp $\r
+ * $Id: irmp-main-pic-12F1840.c,v 1.6 2017/02/17 09:13:06 fm Exp $\r
  *\r
  * This demo module is runnable on a Microchip PIC 12F1840\r
  *\r
  * (at your option) any later version.\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
  */\r
\r
\r
-/* \r
 \r
-Hauptprogramm fuer den nachfolgenden Testaufbau, bestehend aus zwei mal \r
+\r
+/*\r
+\r
+Hauptprogramm fuer den nachfolgenden Testaufbau, bestehend aus zwei mal\r
 \r
 \r
              TSOP1736+        PIC12F1840\r
@@ -32,12 +32,12 @@ Hauptprogramm fuer den nachfolgenden Testaufbau, bestehend aus zwei mal
 RS232 out  -|___|-------GP4--o|  |o--GP1 / ICSPCLK  ___    LED\r
 RS232 in   -|___|---Vpp/GP3--o|__|o--GP2-----------|___|- ->|---Vss\r
              10k\r
-             \r
+\r
 auf einem Steckbrett. (Genauer gesagt, dies ist die aktuelle Beschaltung\r
 fuer V1.8,  V1.0 ist aber bzgl. IRMP-Empfang funktional identisch. Nicht eingezeichnet\r
 ist ein Abblockkondensator von 100nF ueber Vss und Vdd.\r
 \r
-Uebersetzt mit Microchip MPLAB XC8 C Compiler (Free Mode) V1.31 \r
+Uebersetzt mit Microchip MPLAB XC8 C Compiler (Free Mode) V1.31\r
 im stark gecrippelten "Free Mode".\r
 \r
 Memory Summary: (V 1.8)\r
@@ -49,13 +49,13 @@ Memory Summary: (V 1.8)
     ID Location space    used     0h (     0) of     4h bytes   (  0.0%)\r
 \r
 \r
-Testaufbau: \r
+Testaufbau:\r
 \r
 Zwei Steckbretter,\r
-urspruengliche Version des Programms als Empfaenger, \r
+urspruengliche Version des Programms als Empfaenger,\r
 aktuelle Version als Sender, Aufzeichnung mit putty,\r
 angeschlossen jeweils per USB2RS232-Kabel von Conrad\r
-(972543, basierend auf Prolific PL2303). Soft-UART \r
+(972543, basierend auf Prolific PL2303). Soft-UART\r
 fuer Input, da 12F1820 keine Kontrolle ueber Input-\r
 Polaritaet erlaubt und ich fuer Testaufbauten eine\r
 Minimalbeschaltung bevorzuge.\r
@@ -64,8 +64,8 @@ Kurze Distanz
 (~30 cm) zwischen Sender und Empfaenger), keine genaue Ausrichtung.\r
 Stromversorgung wahlwweise mit 5V via PICkit 2 oder 3x1.2V NiMH-AA.\r
 \r
-Zunaechst \r
-CD TAPE TUNER AUX OFF mit Philips FB, \r
+Zunaechst\r
+CD TAPE TUNER AUX OFF mit Philips FB,\r
 OFF mit VAOVA TV-2900HDD FB\r
 dann Eingabe . und n beim Sender.\r
 \r
@@ -125,7 +125,7 @@ void InitApp(void)
     IRCF1=1;\r
     IRCF2=1;\r
     IRCF3=1;\r
-    SPLLEN=1; // p  46 and 54 \r
+    SPLLEN=1; // p  46 and 54\r
 }\r
 \r
 /******************************************************************************/\r
@@ -155,8 +155,8 @@ void InitApp(void)
 // UART\r
 /******************************************************************************/\r
 \r
-#define GPIO3 RA3 \r
-#define GPIO4 RA4 \r
+#define GPIO3 RA3\r
+#define GPIO4 RA4\r
 \r
 #define SOFTUART_RXPIN  GPIO3\r
 #define SOFTUART_STDIO 1\r
@@ -170,12 +170,12 @@ void InitApp(void)
 #define kbhit softuartkbhit\r
 \r
 \r
-void \r
+void\r
 RS232init(void)\r
  {\r
      // Transmit\r
      TXCKSEL = 1;                 //  put TX on pin 4 - not 0 -, p 102\r
-     SPBRGL = (_XTAL_FREQ/BAUD/64-1);  \r
+     SPBRGL = (_XTAL_FREQ/BAUD/64-1);\r
      SPBRGH = 0;\r
      BRGH = 0;\r
      BRG16 = 0;\r
@@ -187,24 +187,24 @@ RS232init(void)
  }\r
 \r
  // EUSART transmit\r
- void \r
+ void\r
  putch(char c)\r
  {\r
     while (!TRMT) _delay(1);\r
     TXREG=c;\r
  }\r
\r
+\r
 /******************************************************************************/\r
 // Timer and ISR\r
 /******************************************************************************/\r
\r
-void \r
+\r
+void\r
 timer1_init(void)\r
 {\r
     // p 154\r
     TMR1=0xFC00; // p. 155 wait 1024 cycles for stabilization.\r
     TMR1CS1=0; // Clock source == System Clock\r
-    TMR1CS0=1; \r
+    TMR1CS0=1;\r
     TMR1IE=1; // enable TMR1 interrupts\r
     PEIE=1;   // enable Pheripheral Interrupts\r
     TMR1IF=0;\r
@@ -218,9 +218,9 @@ timer1_init(void)
 \r
 void interrupt isr(void)\r
 {\r
-    TMR1=0xffff-_XTAL_FREQ/F_INTERRUPTS; \r
+    TMR1=0xffff-_XTAL_FREQ/F_INTERRUPTS;\r
     TMR1IF=0; // clear timer 1 interrupt\r
\r
+\r
     if (!irsnd_ISR())\r
     {\r
         irmp_ISR();\r
@@ -232,20 +232,20 @@ IRMP_DATA irmp_data;
 \r
 void RC5(uint16_t addr,uint16_t  cmd, uint8_t repetitions)\r
 {\r
-    irmp_data.protocol = IRMP_RC5_PROTOCOL;                       \r
+    irmp_data.protocol = IRMP_RC5_PROTOCOL;\r
     irmp_data.address  = addr;\r
     irmp_data.command  = cmd;\r
     irmp_data.flags    = repetitions;\r
-    irsnd_send_data (&irmp_data, FALSE); \r
+    irsnd_send_data (&irmp_data, FALSE);\r
 }\r
 \r
 void NEC(int addr,int cmd)\r
 {\r
-    irmp_data.protocol = IRMP_NEC_PROTOCOL;                       \r
+    irmp_data.protocol = IRMP_NEC_PROTOCOL;\r
     irmp_data.address  = addr;\r
     irmp_data.command  = cmd;\r
     irmp_data.flags    = 0;\r
-    irsnd_send_data (&irmp_data, FALSE); \r
+    irsnd_send_data (&irmp_data, FALSE);\r
 }\r
 \r
 \r
@@ -258,18 +258,18 @@ main (void)
 {\r
     IRMP_DATA irmp_data;\r
     char c;\r
-    InitApp(); \r
+    InitApp();\r
 \r
     PWMoff();\r
     RS232init();\r
-    \r
+\r
     __delay_ms(200);\r
     printf("IRMP PIC 12F1840 1.8 ws\r\n");\r
     irmp_init();              // initialize irmp\r
     timer1_init();            // initialize timer1\r
     ei();                     // enable interrupts\r
     TMR1ON=1; // start timer\r
-  \r
+\r
     for (;;)\r
     {\r
         if (kbhit())\r
@@ -285,7 +285,7 @@ main (void)
             else if (c=='n')\r
             {\r
                 printf("NEC ");\r
-                NEC(0x55,0xaa); \r
+                NEC(0x55,0xaa);\r
             }\r
             else\r
             {\r
@@ -299,11 +299,11 @@ main (void)
         if (irmp_get_data (&irmp_data))\r
         {\r
             printf("P ");\r
-            printf("%d a=0x%04x c=0x%04x f=0x%02x (",irmp_data.protocol, irmp_data.address,irmp_data.command,irmp_data.flags); \r
-            \r
+            printf("%d a=0x%04x c=0x%04x f=0x%02x (",irmp_data.protocol, irmp_data.address,irmp_data.command,irmp_data.flags);\r
+\r
 #if IRMP_PROTOCOL_NAMES\r
             printf(irmp_protocol_names[irmp_data.protocol]);\r
-#else            \r
+#else\r
             switch(irmp_data.protocol)\r
             {\r
                 case 1:\r