faker 1968
/
Effector_110613
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Sat Jul 16 2022 21:12:01 by 1.7.2