Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers R_Sw_Check.cpp Source File

R_Sw_Check.cpp

00001 /*****************************************************/
00002 /* Rotary Switch Check.cpp                           */
00003 /*                                                   */
00004 /*                                                   */
00005 /*****************************************************/
00006 
00007 #define  SW_CHECK_MAIN
00008 #include "R_Sw_Check.h"
00009 
00010 unsigned char ucRotarySwPol(char swA_0, char swB_0, 
00011                             char swA_1, char swB_1,
00012                             char swA_2, char swB_2,
00013                             char swA_3, char swB_3,
00014                             int *pol){
00015 
00016     unsigned char ucRet = 0xFF;
00017 
00018 //  Rotary SW0
00019     *pol = 0;
00020     if((swA_0 == 0) && (g_sw0_0 == 1) && (swB_0 == 1)){
00021         *pol = -1;
00022         ucRet = 0;
00023     }
00024     if((swA_0 == 1) && (g_sw0_0 == 0) && (swB_0 == 1)){
00025         *pol = 1;
00026         ucRet = 0;
00027     }
00028     g_sw0_0 = swA_0;
00029 
00030 //  Rotary SW1
00031     *(pol+1) = 0;
00032     if((swA_1 == 0) && (g_sw1_0 == 1) && (swB_1 == 1)){
00033         *(pol+1) = -1;
00034         ucRet = 1;
00035     }
00036     if((swA_1 == 1) && (g_sw1_0 == 0) && (swB_1 == 1)){
00037         *(pol+1) = 1;
00038         ucRet = 1;
00039     }
00040     g_sw1_0 = swA_1;
00041             
00042 //  Rotary SW2
00043     *(pol+2) = 0;
00044     if((swA_2 == 0) && (g_sw2_0 == 1) && (swB_2 == 1)){
00045         *(pol+2) = -1;
00046         ucRet = 2;
00047     }
00048     if((swA_2 == 1) && (g_sw2_0 == 0) && (swB_2 == 1)){
00049         *(pol+2) = 1;
00050         ucRet = 2;
00051     }
00052     g_sw2_0 = swA_2;
00053 
00054 //  Rotary SW3    
00055     *(pol+3) = 0;
00056     if((swA_3 == 0) && (g_sw3_0 == 1) && (swB_3 == 1)){
00057         *(pol+3) = -1;
00058         ucRet = 3;
00059     }
00060     if((swA_3 == 1) && (g_sw3_0 == 0) && (swB_3 == 1)){
00061         *(pol+3) = 1;
00062         ucRet = 3;
00063     }
00064     g_sw3_0 = swA_3;
00065     
00066     return ucRet;
00067 }
00068 
00069 #undef      SW_CHECK_MAIN