|
@@ -1,4 +1,4 @@
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 1
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 1
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.53.0.0, COMPILATION OF MODULE GPIO_CTRL
|
|
@@ -62,7 +62,7 @@ line level source
|
|
|
48 else
|
|
|
49 {
|
|
|
50 CTRL2=0;
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 2
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 2
|
|
|
|
|
|
51 }
|
|
|
52 }
|
|
@@ -126,7 +126,7 @@ line level source
|
|
|
110 {
|
|
|
111 1 REL1_OFF = 0;
|
|
|
112 1 } // gpio_bit_write(GPIOA, GPIO_PIN_6, RESET)
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 3
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 3
|
|
|
|
|
|
113
|
|
|
114 /*********************************************************************************************************
|
|
@@ -190,7 +190,7 @@ line level source
|
|
|
170 5
|
|
|
171 5 // add by zzw 20240302
|
|
|
172 5 switchState.relay_new_status[0] = 0x00;
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 4
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 4
|
|
|
|
|
|
173 5 // write_mileage[0] = switchState.relay_new_status[0];
|
|
|
174 5 // iap_eeprom_write(10, write_mileage, 1); // 写入1字节
|
|
@@ -254,7 +254,7 @@ line level source
|
|
|
232 5 switchState.relay_new_status[1] = 0x00;
|
|
|
233 5 // write_mileage[0] = switchState.relay_new_status[1];
|
|
|
234 5 // iap_eeprom_write(11, write_mileage, 1); // 写入1字节
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 5
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 5
|
|
|
|
|
|
235 5 iap_eeprom_read(0, write_mileage, 30); // 读取30字节
|
|
|
236 5 write_mileage[11] = switchState.relay_new_status[1];
|
|
@@ -318,7 +318,7 @@ line level source
|
|
|
294 5 // iap_eeprom_write(12, write_mileage, 1); // 写入1字节
|
|
|
295 5 iap_eeprom_read(0, write_mileage, 30); // 读取30字节
|
|
|
296 5 write_mileage[12] = switchState.relay_new_status[2];
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 6
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 6
|
|
|
|
|
|
297 5 iap_eeprom_write(0, write_mileage, 30); // 写入1字节
|
|
|
298 5 // add by zzw 20240302
|
|
@@ -382,7 +382,7 @@ line level source
|
|
|
HIGH_RELAY2_ON(); // 正向脉冲开灯
|
|
|
mRelayPulseTimer2++;
|
|
|
if (mRelayPulseTimer2 >= RelayPulseTime) // test 50ms
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 7
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 7
|
|
|
|
|
|
{
|
|
|
LOW_RELAY2_ON();
|
|
@@ -446,7 +446,7 @@ line level source
|
|
|
mRelayPulseTimer3++;
|
|
|
if (mRelayPulseTimer3 >= RelayPulseTime)
|
|
|
{
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 8
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 8
|
|
|
|
|
|
LOW_RELAY3_ON();
|
|
|
gRelayState |= 0x04;
|
|
@@ -510,7 +510,7 @@ line level source
|
|
|
LOW_RELAY3_ON(); // 正向脉冲全部关闭(IO口设置低电平)
|
|
|
LOW_RELAY1_OFF();
|
|
|
LOW_RELAY2_OFF();
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 9
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 9
|
|
|
|
|
|
LOW_RELAY3_OFF(); // 反向脉冲全部关闭(IO口设置低电平)
|
|
|
}
|
|
@@ -574,7 +574,7 @@ line level source
|
|
|
mcu_dp_bool_update(DPID_SWITCH_2, 1);
|
|
|
}
|
|
|
}
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 10
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 10
|
|
|
|
|
|
else if ((gRelayOnOff & 0x02) == 0x00) // 继电器2关闭
|
|
|
{
|
|
@@ -638,7 +638,7 @@ line level source
|
|
|
switchState.SWITCH[1] = 1;
|
|
|
}
|
|
|
else
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 11
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 11
|
|
|
|
|
|
{
|
|
|
switchState.SWITCH[1] = 0;
|
|
@@ -702,7 +702,7 @@ line level source
|
|
|
661 /*********************************************************************************************************
|
|
|
-*
|
|
|
662 **函数名称 :gpio_light_init()
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 12
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 12
|
|
|
|
|
|
663 **函数描述 :P26/P17/P00/P32/P33/P50配置coms推挽输出,按键指示灯
|
|
|
664 **输 入 :None
|
|
@@ -766,7 +766,7 @@ line level source
|
|
|
719 1 P5_7 = 1; */
|
|
|
720 1 // P14
|
|
|
721 1 SET_REG(PORTIDX, 1);
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 13
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 13
|
|
|
|
|
|
722 1 SET_REG_BITS(PINMOD54, PINMOD4, PIN_MODE_OD_IPU);
|
|
|
723 1 P1_4 = 1; // 使能上拉
|
|
@@ -830,7 +830,7 @@ line level source
|
|
|
779 1
|
|
|
780 1 // p11,p15
|
|
|
781 1 SET_REG(PORTIDX, 0);
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 14
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 14
|
|
|
|
|
|
782 1 SET_REG_BITS(PINMOD10, PINMOD1, PIN_MODE_PP); // 配置为CMOS推挽输出
|
|
|
783 1 P0_1 = 0;
|
|
@@ -894,7 +894,7 @@ line level source
|
|
|
839 Input: onCycle -- LED亮时间,单位10ms,最大255
|
|
|
840 ledCycle -- LED控制周期,单位10ms,最大255
|
|
|
841 Output: no
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 15
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 15
|
|
|
|
|
|
842 Return: no
|
|
|
843 Others: no
|
|
@@ -958,7 +958,7 @@ line level source
|
|
|
901 3 pwm_set_duty(n, 255);
|
|
|
902 3 ledTimer[n].ticket = 0;
|
|
|
903 3 }
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 16
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 16
|
|
|
|
|
|
904 2 }
|
|
|
905 1 }
|
|
@@ -1022,7 +1022,7 @@ line level source
|
|
|
963 /*******************************************************************************
|
|
|
964 Function: key_led_pwm_ctl()
|
|
|
965 Description: 按键指示灯控制函数,10ms调用,硬件PWM
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 17
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 17
|
|
|
|
|
|
966 Calls:
|
|
|
967 Called By:
|
|
@@ -1086,7 +1086,7 @@ line level source
|
|
|
1022 4 switchState.step[ledn] = 0x01; // 闪烁结束进入正常背光状态
|
|
|
1023 4 }
|
|
|
1024 3 else
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 18
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 18
|
|
|
|
|
|
1025 3 {
|
|
|
1026 4 pwmLedSetParam(25, 50, ledn); // 500ms一个周期
|
|
@@ -1125,273 +1125,294 @@ line level source
|
|
|
1058 5 pwmLevelNew = PWMLEVEL1;
|
|
|
1059 5 // pwm_set_duty(ledn, PWMLEVEL1); // 根据APP设置亮度
|
|
|
1060 5 }
|
|
|
-1061 4 else if (switchState.led_level == 0x01)
|
|
|
+1061 4 else if (switchState.led_level == 1)
|
|
|
1062 4 {
|
|
|
1063 5 pwmLevelNew = PWMLEVEL2;
|
|
|
1064 5 // pwm_set_duty(ledn, PWMLEVEL2); // 根据APP设置亮度
|
|
|
1065 5 }
|
|
|
-1066 4 else if (switchState.led_level == 0x02)
|
|
|
+1066 4 else if (switchState.led_level == 2)
|
|
|
1067 4 {
|
|
|
1068 5 pwmLevelNew = PWMLEVEL3;
|
|
|
1069 5 // pwm_set_duty(ledn, PWMLEVEL3); // 根据APP设置亮度
|
|
|
1070 5 }
|
|
|
1071 4 else
|
|
|
1072 4 {
|
|
|
-1073 5 pwmLevelNew = PWMLEVEL1;//如eeprom未配置,默认亮度
|
|
|
+1073 5 pwmLevelNew = PWMLEVEL2;//如eeprom未配置,默认亮度
|
|
|
1074 5 }
|
|
|
1075 4 pwm_set_duty(ledn, pwmLevelNew); // 根据APP设置亮度
|
|
|
1076 4 }
|
|
|
1077 3 else // 雷达关闭状态开启继电器 背光全亮(100%占空比)关闭继电器 背光微亮(25%占空比)
|
|
|
1078 3 {
|
|
|
-1079 4 pwm_set_duty(ledn, PWMLEVEL1); // 微亮
|
|
|
-1080 4 }
|
|
|
-1081 3 switchState.step[ledn] = 0x06;
|
|
|
-1082 3 break;
|
|
|
-1083 3 case 0x06: // 正常待机模式
|
|
|
-1084 3 if (gRadarKeepTimer == 0) // 检测到无人
|
|
|
-1085 3 {
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 19
|
|
|
+1079 4 if (switchState.led_level == 0x00)
|
|
|
+1080 4 {
|
|
|
+1081 5 pwmLevelNew = PWMLEVEL1;
|
|
|
+1082 5 // pwm_set_duty(ledn, PWMLEVEL1); // 根据APP设置亮度
|
|
|
+1083 5 }
|
|
|
+1084 4 else if (switchState.led_level == 1)
|
|
|
+1085 4 {
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 19
|
|
|
|
|
|
-1086 4 pwm_set_duty(ledn, 0); // 全灭
|
|
|
-1087 4 // pwm_set_duty(ledn, PWMLEVEL1); // 微亮
|
|
|
-1088 4 }
|
|
|
-1089 3 else
|
|
|
-1090 3 {
|
|
|
-1091 4 switchState.step[ledn] = 0x01; // 检测到有人,重新启动PWM
|
|
|
-1092 4 }
|
|
|
-1093 3 break;
|
|
|
-1094 3 default:
|
|
|
-1095 3 break;
|
|
|
-1096 3 }
|
|
|
-1097 2 }
|
|
|
-1098 1 }
|
|
|
-1099
|
|
|
-1100 /*********************************************************************************************************
|
|
|
+1086 5 pwmLevelNew = PWMLEVEL2;
|
|
|
+1087 5 // pwm_set_duty(ledn, PWMLEVEL2); // 根据APP设置亮度
|
|
|
+1088 5 }
|
|
|
+1089 4 else if (switchState.led_level == 2)
|
|
|
+1090 4 {
|
|
|
+1091 5 pwmLevelNew = PWMLEVEL3;
|
|
|
+1092 5 // pwm_set_duty(ledn, PWMLEVEL3); // 根据APP设置亮度
|
|
|
+1093 5 }
|
|
|
+1094 4 else
|
|
|
+1095 4 {
|
|
|
+1096 5 pwmLevelNew = PWMLEVEL2;//如eeprom未配置,默认亮度
|
|
|
+1097 5 }
|
|
|
+1098 4 pwm_set_duty(ledn, pwmLevelNew); // 微亮
|
|
|
+1099 4 }
|
|
|
+1100 3 switchState.step[ledn] = 0x06;
|
|
|
+1101 3 break;
|
|
|
+1102 3 case 0x06: // 正常待机模式
|
|
|
+1103 3 if (gRadarKeepTimer == 0) // 检测到无人
|
|
|
+1104 3 {
|
|
|
+1105 4 pwm_set_duty(ledn, 0); // 全灭
|
|
|
+1106 4 // pwm_set_duty(ledn, PWMLEVEL1); // 微亮
|
|
|
+1107 4 }
|
|
|
+1108 3 else
|
|
|
+1109 3 {
|
|
|
+1110 4 switchState.step[ledn] = 0x01; // 检测到有人,重新启动PWM
|
|
|
+1111 4 }
|
|
|
+1112 3 break;
|
|
|
+1113 3 default:
|
|
|
+1114 3 break;
|
|
|
+1115 3 }
|
|
|
+1116 2 }
|
|
|
+1117 1 }
|
|
|
+1118
|
|
|
+1119 /*********************************************************************************************************
|
|
|
-*
|
|
|
-1101 **函数名称 :pwm0_init
|
|
|
-1102 **函数描述 :pwm0 初始化配置
|
|
|
-1103 **输 入 :None
|
|
|
-1104 **输 出 :None
|
|
|
-1105 **********************************************************************************************************
|
|
|
+1120 **函数名称 :pwm0_init
|
|
|
+1121 **函数描述 :pwm0 初始化配置
|
|
|
+1122 **输 入 :None
|
|
|
+1123 **输 出 :None
|
|
|
+1124 **********************************************************************************************************
|
|
|
-/
|
|
|
-1106 void pwm0_init()
|
|
|
-1107 {
|
|
|
-1108 1 /*SET_REG(PORTIDX, 1);
|
|
|
-1109 1 SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF); //PWM0 PIN CONFIG INIT P16
|
|
|
-1110 1 SET_REG_BITS(PINMOD54, PINMOD4, PIN_MODE_AF); //PWM0 PIN CONFIG INIT P14*/
|
|
|
-1111 1
|
|
|
-1112 1 SET_REG(PORTIDX, 2);
|
|
|
-1113 1 SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF); // PWM0 PIN CONFIG INIT P26 --LED1
|
|
|
-1114 1
|
|
|
-1115 1 SET_REG_BITS(PWMEN, PWM0EN, 1); // PWM0 ENABLE
|
|
|
-1116 1 }
|
|
|
-1117 /*********************************************************************************************************
|
|
|
+1125 void pwm0_init()
|
|
|
+1126 {
|
|
|
+1127 1 /*SET_REG(PORTIDX, 1);
|
|
|
+1128 1 SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF); //PWM0 PIN CONFIG INIT P16
|
|
|
+1129 1 SET_REG_BITS(PINMOD54, PINMOD4, PIN_MODE_AF); //PWM0 PIN CONFIG INIT P14*/
|
|
|
+1130 1
|
|
|
+1131 1 SET_REG(PORTIDX, 2);
|
|
|
+1132 1 SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF); // PWM0 PIN CONFIG INIT P26 --LED1
|
|
|
+1133 1
|
|
|
+1134 1 SET_REG_BITS(PWMEN, PWM0EN, 1); // PWM0 ENABLE
|
|
|
+1135 1 }
|
|
|
+1136 /*********************************************************************************************************
|
|
|
-*
|
|
|
-1118 **函数名称 :pwm1_init
|
|
|
-1119 **函数描述 :pwm1 初始化配
|
|
|
-1120 **输 入 :None
|
|
|
-1121 **输 出 :None
|
|
|
-1122 **********************************************************************************************************
|
|
|
+1137 **函数名称 :pwm1_init
|
|
|
+1138 **函数描述 :pwm1 初始化配
|
|
|
+1139 **输 入 :None
|
|
|
+1140 **输 出 :None
|
|
|
+1141 **********************************************************************************************************
|
|
|
-/
|
|
|
-1123 void pwm1_init()
|
|
|
-1124 {
|
|
|
-1125 1 SET_REG(PORTIDX, 1);
|
|
|
-1126 1 SET_REG_BITS(PINMOD76, PINMOD7, PIN_MODE_AF); // PWM1 PIN CONFIG INIT P17 --LED2
|
|
|
-1127 1 // SET_REG_BITS(PINMOD54, PINMOD5, PIN_MODE_AF); //PWM1 PIN CONFIG INIT P15
|
|
|
-1128 1 SET_REG_BITS(PWMEN, PWM1EN, 1); // PWM0 ENABLE
|
|
|
-1129 1 }
|
|
|
-1130 /*********************************************************************************************************
|
|
|
- -*
|
|
|
-1131 **函数名称 :pwm2_init
|
|
|
-1132 **函数描述 :pwm2 初始化配
|
|
|
-1133 **输 入 :None
|
|
|
-1134 **输 出 :None
|
|
|
-1135 **********************************************************************************************************
|
|
|
- -/
|
|
|
-1136 void pwm2_init()
|
|
|
-1137 {
|
|
|
-1138 1 SET_REG(PORTIDX, 5);
|
|
|
-1139 1 SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_AF); // pwm2 p50 --LED6
|
|
|
-1140 1 // SET_REG_BITS(PINMOD76, PINMOD7, PIN_MODE_AF);
|
|
|
-1141 1 // SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF);
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 20
|
|
|
+1142 void pwm1_init()
|
|
|
+1143 {
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 20
|
|
|
|
|
|
-1142 1 SET_REG_BITS(PWMEN, PWM2EN, 1);
|
|
|
-1143 1 }
|
|
|
-1144
|
|
|
-1145 /*********************************************************************************************************
|
|
|
+1144 1 SET_REG(PORTIDX, 1);
|
|
|
+1145 1 SET_REG_BITS(PINMOD76, PINMOD7, PIN_MODE_AF); // PWM1 PIN CONFIG INIT P17 --LED2
|
|
|
+1146 1 // SET_REG_BITS(PINMOD54, PINMOD5, PIN_MODE_AF); //PWM1 PIN CONFIG INIT P15
|
|
|
+1147 1 SET_REG_BITS(PWMEN, PWM1EN, 1); // PWM0 ENABLE
|
|
|
+1148 1 }
|
|
|
+1149 /*********************************************************************************************************
|
|
|
-*
|
|
|
-1146 **函数名称 :pwm3_init
|
|
|
-1147 **函数描述 :pwm3 初始化配
|
|
|
-1148 **输 入 :None
|
|
|
-1149 **输 出 :None
|
|
|
-1150 **********************************************************************************************************
|
|
|
+1150 **函数名称 :pwm2_init
|
|
|
+1151 **函数描述 :pwm2 初始化配
|
|
|
+1152 **输 入 :None
|
|
|
+1153 **输 出 :None
|
|
|
+1154 **********************************************************************************************************
|
|
|
-/
|
|
|
-1151 void pwm3_init()
|
|
|
-1152 {
|
|
|
-1153 1 SET_REG(PORTIDX, 0);
|
|
|
-1154 1 SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P00 --PWM30--LED3
|
|
|
-1155 1 // SET_REG_BITS(PINMOD10, PINMOD1, PIN_MODE_AF);
|
|
|
-1156 1 SET_REG_BITS(PWMEN, PWM3EN, 1);
|
|
|
-1157 1
|
|
|
-1158 1 SET_REG(PORTIDX, 3);
|
|
|
-1159 1 SET_REG_BITS(PINMOD32, PINMOD2, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P32 --PWM34--LED4
|
|
|
-1160 1 SET_REG_BITS(PINMOD32, PINMOD3, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P33 --PWM35--LED5
|
|
|
-1161 1 SET_REG_BITS(PWMEN, PWM3EN, 1);
|
|
|
+1155 void pwm2_init()
|
|
|
+1156 {
|
|
|
+1157 1 SET_REG(PORTIDX, 5);
|
|
|
+1158 1 SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_AF); // pwm2 p50 --LED6
|
|
|
+1159 1 // SET_REG_BITS(PINMOD76, PINMOD7, PIN_MODE_AF);
|
|
|
+1160 1 // SET_REG_BITS(PINMOD76, PINMOD6, PIN_MODE_AF);
|
|
|
+1161 1 SET_REG_BITS(PWMEN, PWM2EN, 1);
|
|
|
1162 1 }
|
|
|
1163
|
|
|
-1164 /******************************************************************************************
|
|
|
-1165 ** 函数名称: pwm0_clock_config
|
|
|
-1166 ** 函数描述: pwm0 时钟源配置函数
|
|
|
-1167 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
-1168 ** 输出参数: 无
|
|
|
-1169 *******************************************************************************************/
|
|
|
-1170 void pwm0_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
+1164 /*********************************************************************************************************
|
|
|
+ -*
|
|
|
+1165 **函数名称 :pwm3_init
|
|
|
+1166 **函数描述 :pwm3 初始化配
|
|
|
+1167 **输 入 :None
|
|
|
+1168 **输 出 :None
|
|
|
+1169 **********************************************************************************************************
|
|
|
+ -/
|
|
|
+1170 void pwm3_init()
|
|
|
1171 {
|
|
|
-1172 1 SET_REG_BITS(PWMCON, PWM0CKS, value);
|
|
|
-1173 1 }
|
|
|
-1174 /******************************************************************************************
|
|
|
-1175 ** 函数名称: pwm0_clock_config
|
|
|
-1176 ** 函数描述: pwm0时钟源配置函数
|
|
|
-1177 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
-1178 ** 输出参数: 无
|
|
|
-1179 *******************************************************************************************/
|
|
|
-1180 void pwm1_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
-1181 {
|
|
|
-1182 1 SET_REG_BITS(PWMCON, PWM1CKS, value);
|
|
|
-1183 1 }
|
|
|
-1184 /******************************************************************************************
|
|
|
-1185 ** 函数名称: pwm0_clock_config
|
|
|
-1186 ** 函数描述: pwm0时钟源配置函数
|
|
|
-1187 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
-1188 ** 输出参数: 无
|
|
|
-1189 *******************************************************************************************/
|
|
|
-1190 void pwm2_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
-1191 {
|
|
|
-1192 1 SET_REG_BITS(PWMCON, PWM2CKS, value);
|
|
|
-1193 1 }
|
|
|
-1194 /******************************************************************************************
|
|
|
-1195 ** 函数名称: pwm0_clock_config
|
|
|
-1196 ** 函数描述: pwm0时钟源配置函数
|
|
|
-1197 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
-1198 ** 输出参数: 无
|
|
|
-1199 *******************************************************************************************/
|
|
|
-1200 void pwm3_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
-1201 {
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 21
|
|
|
+1172 1 SET_REG(PORTIDX, 0);
|
|
|
+1173 1 SET_REG_BITS(PINMOD10, PINMOD0, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P00 --PWM30--LED3
|
|
|
+1174 1 // SET_REG_BITS(PINMOD10, PINMOD1, PIN_MODE_AF);
|
|
|
+1175 1 SET_REG_BITS(PWMEN, PWM3EN, 1);
|
|
|
+1176 1
|
|
|
+1177 1 SET_REG(PORTIDX, 3);
|
|
|
+1178 1 SET_REG_BITS(PINMOD32, PINMOD2, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P32 --PWM34--LED4
|
|
|
+1179 1 SET_REG_BITS(PINMOD32, PINMOD3, PIN_MODE_AF); // PWM3 PIN CONFIG INIT P33 --PWM35--LED5
|
|
|
+1180 1 SET_REG_BITS(PWMEN, PWM3EN, 1);
|
|
|
+1181 1 }
|
|
|
+1182
|
|
|
+1183 /******************************************************************************************
|
|
|
+1184 ** 函数名称: pwm0_clock_config
|
|
|
+1185 ** 函数描述: pwm0 时钟源配置函数
|
|
|
+1186 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
+1187 ** 输出参数: 无
|
|
|
+1188 *******************************************************************************************/
|
|
|
+1189 void pwm0_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
+1190 {
|
|
|
+1191 1 SET_REG_BITS(PWMCON, PWM0CKS, value);
|
|
|
+1192 1 }
|
|
|
+1193 /******************************************************************************************
|
|
|
+1194 ** 函数名称: pwm0_clock_config
|
|
|
+1195 ** 函数描述: pwm0时钟源配置函数
|
|
|
+1196 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
+1197 ** 输出参数: 无
|
|
|
+1198 *******************************************************************************************/
|
|
|
+1199 void pwm1_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
+1200 {
|
|
|
+1201 1 SET_REG_BITS(PWMCON, PWM1CKS, value);
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 21
|
|
|
|
|
|
-1202 1 SET_REG_BITS(PWMCON, PWM3CKS, value);
|
|
|
-1203 1 }
|
|
|
-1204
|
|
|
-1205 /******************************************************************************************
|
|
|
-1206 ** 函数名称: pwm_config_init
|
|
|
-1207 ** 函数描述: pwm周期、占空比设置函数
|
|
|
-1208 ** 输入参数: prd:周期 duty:占空比 ch:通道
|
|
|
-1209 ** 输出参数: 无
|
|
|
-1210 *******************************************************************************************/
|
|
|
-1211 void pwm_config_init(unsigned int prd, unsigned int duty, unsigned char ch)
|
|
|
-1212 {
|
|
|
-1213 1 PWMIDX = ch;
|
|
|
-1214 1 PWMPRDL = prd & 0xff; // 写 先低后高 读 先高后低
|
|
|
-1215 1 PWMPRDH = (prd >> 8) & 0XFF;
|
|
|
-1216 1
|
|
|
-1217 1 PWMIDX = ch;
|
|
|
-1218 1 PWMDL = duty & 0XFF; // PWM1DL 占空比低字节
|
|
|
-1219 1 PWMDH = (duty >> 8) & 0XFF; // PWM1DL 占空比低字节
|
|
|
-1220 1 }
|
|
|
-1221
|
|
|
-1222 /*********************************************************************************************************
|
|
|
+1202 1 }
|
|
|
+1203 /******************************************************************************************
|
|
|
+1204 ** 函数名称: pwm0_clock_config
|
|
|
+1205 ** 函数描述: pwm0时钟源配置函数
|
|
|
+1206 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
+1207 ** 输出参数: 无
|
|
|
+1208 *******************************************************************************************/
|
|
|
+1209 void pwm2_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
+1210 {
|
|
|
+1211 1 SET_REG_BITS(PWMCON, PWM2CKS, value);
|
|
|
+1212 1 }
|
|
|
+1213 /******************************************************************************************
|
|
|
+1214 ** 函数名称: pwm0_clock_config
|
|
|
+1215 ** 函数描述: pwm0时钟源配置函数
|
|
|
+1216 ** 输入参数: value 0:FSYSCLK 1:FSYSCLK 2:FRC 3:FRC*2
|
|
|
+1217 ** 输出参数: 无
|
|
|
+1218 *******************************************************************************************/
|
|
|
+1219 void pwm3_clock_config(unsigned char value) // PWM时钟源模式
|
|
|
+1220 {
|
|
|
+1221 1 SET_REG_BITS(PWMCON, PWM3CKS, value);
|
|
|
+1222 1 }
|
|
|
+1223
|
|
|
+1224 /******************************************************************************************
|
|
|
+1225 ** 函数名称: pwm_config_init
|
|
|
+1226 ** 函数描述: pwm周期、占空比设置函数
|
|
|
+1227 ** 输入参数: prd:周期 duty:占空比 ch:通道
|
|
|
+1228 ** 输出参数: 无
|
|
|
+1229 *******************************************************************************************/
|
|
|
+1230 void pwm_config_init(unsigned int prd, unsigned int duty, unsigned char ch)
|
|
|
+1231 {
|
|
|
+1232 1 PWMIDX = ch;
|
|
|
+1233 1 PWMPRDL = prd & 0xff; // 写 先低后高 读 先高后低
|
|
|
+1234 1 PWMPRDH = (prd >> 8) & 0XFF;
|
|
|
+1235 1
|
|
|
+1236 1 PWMIDX = ch;
|
|
|
+1237 1 PWMDL = duty & 0XFF; // PWM1DL 占空比低字节
|
|
|
+1238 1 PWMDH = (duty >> 8) & 0XFF; // PWM1DL 占空比低字节
|
|
|
+1239 1 }
|
|
|
+1240
|
|
|
+1241 /*********************************************************************************************************
|
|
|
-*
|
|
|
-1223 **函数名称 :pwm_set_prd
|
|
|
-1224 **函数描述 :pwm周期设置函数
|
|
|
-1225 **输 入 :pwm1-3周期
|
|
|
-1226 **输 出 :None
|
|
|
-1227 **********************************************************************************************************
|
|
|
+1242 **函数名称 :pwm_set_prd
|
|
|
+1243 **函数描述 :pwm周期设置函数
|
|
|
+1244 **输 入 :pwm1-3周期
|
|
|
+1245 **输 出 :None
|
|
|
+1246 **********************************************************************************************************
|
|
|
-/
|
|
|
-1228 void pwm_set_prd(unsigned char ledprd)
|
|
|
-1229 {
|
|
|
-1230 1 // int pwmprd = 0;
|
|
|
-1231 1
|
|
|
-1232 1 pwm0_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
-1233 1 pwm1_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
-1234 1 pwm2_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
-1235 1 pwm3_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
-1236 1
|
|
|
-1237 1 // pwm_config_init(18432, duty, ch);//设置周期为1ms
|
|
|
-1238 1 /*if (ledprd == 255) // 设置255表示最大值65535,统一配置
|
|
|
-1239 1 {
|
|
|
-1240 1 pwmprd = 18432;
|
|
|
-1241 1 }*/
|
|
|
-1242 1 pwm_config_init(PWMPRD, 0, 0x00); // PWM0 -led1
|
|
|
-1243 1 pwm_config_init(PWMPRD, 0, 0x10); // PWM1 -led2
|
|
|
-1244 1 pwm_config_init(PWMPRD, 0, 0x20); // PWM2 -led6
|
|
|
-1245 1
|
|
|
-1246 1 pwm_config_init(PWMPRD, 0, 0x30); // PWM30 -led3
|
|
|
-1247 1 pwm_config_init(PWMPRD, 0, 0x34); // PWM34 -led4
|
|
|
-1248 1 pwm_config_init(PWMPRD, 0, 0x35); // PWM35 -led5
|
|
|
-1249 1 }
|
|
|
-*** WARNING C280 IN LINE 1228 OF gpio_ctrl.c: 'ledprd': unreferenced local variable
|
|
|
-1250
|
|
|
-1251 /*********************************************************************************************************
|
|
|
+1247 void pwm_set_prd(unsigned char ledprd)
|
|
|
+1248 {
|
|
|
+1249 1 // int pwmprd = 0;
|
|
|
+1250 1
|
|
|
+1251 1 pwm0_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
+1252 1 pwm1_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
+1253 1 pwm2_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
+1254 1 pwm3_clock_config(2); // 选择FRC为PWM模组的时钟源
|
|
|
+1255 1
|
|
|
+1256 1 // pwm_config_init(18432, duty, ch);//设置周期为1ms
|
|
|
+1257 1 /*if (ledprd == 255) // 设置255表示最大值65535,统一配置
|
|
|
+1258 1 {
|
|
|
+1259 1 pwmprd = 18432;
|
|
|
+1260 1 }*/
|
|
|
+1261 1 pwm_config_init(PWMPRD, 0, 0x00); // PWM0 -led1
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 22
|
|
|
+
|
|
|
+1262 1 pwm_config_init(PWMPRD, 0, 0x10); // PWM1 -led2
|
|
|
+1263 1 pwm_config_init(PWMPRD, 0, 0x20); // PWM2 -led6
|
|
|
+1264 1
|
|
|
+1265 1 pwm_config_init(PWMPRD, 0, 0x30); // PWM30 -led3
|
|
|
+1266 1 pwm_config_init(PWMPRD, 0, 0x34); // PWM34 -led4
|
|
|
+1267 1 pwm_config_init(PWMPRD, 0, 0x35); // PWM35 -led5
|
|
|
+1268 1 }
|
|
|
+*** WARNING C280 IN LINE 1247 OF gpio_ctrl.c: 'ledprd': unreferenced local variable
|
|
|
+1269
|
|
|
+1270 /*********************************************************************************************************
|
|
|
-*
|
|
|
-1252 **函数名称 :pwm_set_duty
|
|
|
-1253 **函数描述 :pwm1-pwm3 pwm占空比设置函数
|
|
|
-1254 **输 入 :pwm1-3占空比,0-255,255为1ms
|
|
|
-1255 **输 出 :None
|
|
|
-1256 **********************************************************************************************************
|
|
|
+1271 **函数名称 :pwm_set_duty
|
|
|
+1272 **函数描述 :pwm1-pwm3 pwm占空比设置函数
|
|
|
+1273 **输 入 :pwm1-3占空比,0-255,255为1ms
|
|
|
+1274 **输 出 :None
|
|
|
+1275 **********************************************************************************************************
|
|
|
-/
|
|
|
-1257 void pwm_set_duty(unsigned char ledn, unsigned char duty)
|
|
|
-1258 {
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 22
|
|
|
-
|
|
|
-1259 1 if (ledn == 5) // 按键1灯1
|
|
|
-1260 1 {
|
|
|
-1261 2 pwm_config_init(PWMPRD, duty * 72, 0x00);
|
|
|
-1262 2 }
|
|
|
-1263 1 else if (ledn == 4) // 按键2灯2
|
|
|
-1264 1 {
|
|
|
-1265 2 pwm_config_init(PWMPRD, duty * 72, 0x10);
|
|
|
-1266 2 }
|
|
|
-1267 1 else if (ledn == 3) // 按键3灯3
|
|
|
-1268 1 {
|
|
|
-1269 2 pwm_config_init(PWMPRD, duty * 72, 0x30);
|
|
|
-1270 2 }
|
|
|
-1271 1 else if (ledn == 0) // 按键4灯4
|
|
|
-1272 1 {
|
|
|
-1273 2 pwm_config_init(PWMPRD, duty * 72, 0x34);
|
|
|
-1274 2 }
|
|
|
-1275 1 else if (ledn == 1) // 按键5灯5
|
|
|
-1276 1 {
|
|
|
-1277 2 pwm_config_init(PWMPRD, duty * 72, 0x35);
|
|
|
-1278 2 }
|
|
|
-1279 1 else if (ledn == 2) // 按键6灯6
|
|
|
-1280 1 {
|
|
|
-1281 2 pwm_config_init(PWMPRD, duty * 72, 0x20);
|
|
|
-1282 2 }
|
|
|
-1283 1 else
|
|
|
-1284 1 {
|
|
|
+1276 void pwm_set_duty(unsigned char ledn, unsigned char duty)
|
|
|
+1277 {
|
|
|
+1278 1 if (ledn == 5) // 按键1灯1
|
|
|
+1279 1 {
|
|
|
+1280 2 pwm_config_init(PWMPRD, duty * 72, 0x00);
|
|
|
+1281 2 }
|
|
|
+1282 1 else if (ledn == 4) // 按键2灯2
|
|
|
+1283 1 {
|
|
|
+1284 2 pwm_config_init(PWMPRD, duty * 72, 0x10);
|
|
|
1285 2 }
|
|
|
-1286 1 }
|
|
|
-1287
|
|
|
-1288 /*******************************************************************************
|
|
|
-1289 Function: ScanKeyn()
|
|
|
-1290 Description: 按键扫描函数,区分短按,长按时间返回
|
|
|
-1291 Calls:
|
|
|
-1292 Called By: 放入10ms任务
|
|
|
-1293 Input: no
|
|
|
-1294 Output: no
|
|
|
-1295 Return: no
|
|
|
-1296 Others: no
|
|
|
-1297 ********************************************************************************/
|
|
|
-1298 volatile sKey KeyCodeBuf[KEYBUFLENGTH];
|
|
|
-1299 volatile UCHAR KeyCodeHead, KeyCodeTail;
|
|
|
-1300 SScanKey sScanKey[KEY_MAX_NUM];
|
|
|
-1301 void ScanKeyn(void)
|
|
|
-1302 {
|
|
|
-1303 1 static byte row; // 扫描输出列计数
|
|
|
-1304 1 unsigned char i;
|
|
|
-1305 1 u08 ReadValue;
|
|
|
-1306 1 #ifdef ZIGBEE_ZTU_T1_SW
|
|
|
+1286 1 else if (ledn == 3) // 按键3灯3
|
|
|
+1287 1 {
|
|
|
+1288 2 pwm_config_init(PWMPRD, duty * 72, 0x30);
|
|
|
+1289 2 }
|
|
|
+1290 1 else if (ledn == 0) // 按键4灯4
|
|
|
+1291 1 {
|
|
|
+1292 2 pwm_config_init(PWMPRD, duty * 72, 0x34);
|
|
|
+1293 2 }
|
|
|
+1294 1 else if (ledn == 1) // 按键5灯5
|
|
|
+1295 1 {
|
|
|
+1296 2 pwm_config_init(PWMPRD, duty * 72, 0x35);
|
|
|
+1297 2 }
|
|
|
+1298 1 else if (ledn == 2) // 按键6灯6
|
|
|
+1299 1 {
|
|
|
+1300 2 pwm_config_init(PWMPRD, duty * 72, 0x20);
|
|
|
+1301 2 }
|
|
|
+1302 1 else
|
|
|
+1303 1 {
|
|
|
+1304 2 }
|
|
|
+1305 1 }
|
|
|
+1306
|
|
|
+1307 /*******************************************************************************
|
|
|
+1308 Function: ScanKeyn()
|
|
|
+1309 Description: 按键扫描函数,区分短按,长按时间返回
|
|
|
+1310 Calls:
|
|
|
+1311 Called By: 放入10ms任务
|
|
|
+1312 Input: no
|
|
|
+1313 Output: no
|
|
|
+1314 Return: no
|
|
|
+1315 Others: no
|
|
|
+1316 ********************************************************************************/
|
|
|
+1317 volatile sKey KeyCodeBuf[KEYBUFLENGTH];
|
|
|
+1318 volatile UCHAR KeyCodeHead, KeyCodeTail;
|
|
|
+1319 SScanKey sScanKey[KEY_MAX_NUM];
|
|
|
+1320 void ScanKeyn(void)
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 23
|
|
|
+
|
|
|
+1321 {
|
|
|
+1322 1 static byte row; // 扫描输出列计数
|
|
|
+1323 1 unsigned char i;
|
|
|
+1324 1 u08 ReadValue;
|
|
|
+1325 1 #ifdef ZIGBEE_ZTU_T1_SW
|
|
|
for (i = 0; i < KEY_MAX_NUM; i++) // 每次(10ms)扫键值,如1号键暂存入1
|
|
|
{
|
|
|
sScanKey[i].KeyIn = 0xff;
|
|
@@ -1406,8 +1427,6 @@ line level source
|
|
|
}
|
|
|
if (KEY3_READ() == 0x00)
|
|
|
{
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 23
|
|
|
-
|
|
|
sScanKey[0].KeyIn = KEY3; // 键值
|
|
|
}
|
|
|
if (KEY4_READ() == 0x00)
|
|
@@ -1425,131 +1444,131 @@ line level source
|
|
|
sScanKey[0].KeyIn = KEY6; // 键值
|
|
|
}
|
|
|
#endif
|
|
|
-1338 1 #ifndef ZIGBEE_ZTU_T1_SW
|
|
|
-1339 1 for (i = 0; i < KEY_MAX_NUM; i++) // 每次(10ms)扫键值,如1号键暂存入1
|
|
|
-1340 1 {
|
|
|
-1341 2 sScanKey[i].KeyIn = 0xff;
|
|
|
-1342 2 }
|
|
|
-1343 1 if (KEY1_READ() == 0x00)
|
|
|
-1344 1 {
|
|
|
-1345 2 sScanKey[0].KeyIn = KEY1; // 键值
|
|
|
-1346 2 }
|
|
|
-1347 1 if (KEY2_READ() == 0x00)
|
|
|
-1348 1 {
|
|
|
-1349 2 sScanKey[1].KeyIn = KEY2; // 键值
|
|
|
-1350 2 }
|
|
|
-1351 1 if (KEY3_READ() == 0x00)
|
|
|
-1352 1 {
|
|
|
-1353 2 sScanKey[2].KeyIn = KEY3; // 键值
|
|
|
-1354 2 }
|
|
|
-1355 1 if (KEY4_READ() == 0x00)
|
|
|
-1356 1 {
|
|
|
-1357 2 sScanKey[3].KeyIn = KEY4; // 键值
|
|
|
-1358 2 }
|
|
|
-1359 1
|
|
|
-1360 1 if (KEY5_READ() == 0x00)
|
|
|
-1361 1 {
|
|
|
-1362 2 sScanKey[4].KeyIn = KEY5; // 键值
|
|
|
-1363 2 }
|
|
|
-1364 1
|
|
|
-1365 1 if (KEY6_READ() == 0x00)
|
|
|
-1366 1 {
|
|
|
-1367 2 sScanKey[5].KeyIn = KEY6; // 键值
|
|
|
-1368 2 }
|
|
|
-1369 1 #endif
|
|
|
-1370 1 for (i = 0; i < KEY_MAX_NUM; i++) // 每次(10ms)扫键值,如1号键暂存入1
|
|
|
+1357 1 #ifndef ZIGBEE_ZTU_T1_SW
|
|
|
+1358 1 for (i = 0; i < KEY_MAX_NUM; i++) // 每次(10ms)扫键值,如1号键暂存入1
|
|
|
+1359 1 {
|
|
|
+1360 2 sScanKey[i].KeyIn = 0xff;
|
|
|
+1361 2 }
|
|
|
+1362 1 if (KEY1_READ() == 0x00)
|
|
|
+1363 1 {
|
|
|
+1364 2 sScanKey[0].KeyIn = KEY1; // 键值
|
|
|
+1365 2 }
|
|
|
+1366 1 if (KEY2_READ() == 0x00)
|
|
|
+1367 1 {
|
|
|
+1368 2 sScanKey[1].KeyIn = KEY2; // 键值
|
|
|
+1369 2 }
|
|
|
+1370 1 if (KEY3_READ() == 0x00)
|
|
|
1371 1 {
|
|
|
-1372 2 if (sScanKey[i].KeyIn == 0xff)
|
|
|
-1373 2 {
|
|
|
-1374 3 if (sScanKey[i].key_l > 1) // 有键按下释放
|
|
|
-1375 3 { // 释放按键
|
|
|
-1376 4
|
|
|
-1377 4 if (sScanKey[i].key_h < 100) // 按键时间少于1000mS则为短按键,存入键值
|
|
|
-1378 4 {
|
|
|
-1379 5 if (++KeyCodeHead >= KEYBUFLENGTH)
|
|
|
-1380 5 KeyCodeHead = 0;
|
|
|
-1381 5 KeyCodeBuf[KeyCodeHead].bKey = sScanKey[i].KeyInpush; // 说明键值释放了,存键值
|
|
|
-1382 5 }
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 24
|
|
|
+1372 2 sScanKey[2].KeyIn = KEY3; // 键值
|
|
|
+1373 2 }
|
|
|
+1374 1 if (KEY4_READ() == 0x00)
|
|
|
+1375 1 {
|
|
|
+1376 2 sScanKey[3].KeyIn = KEY4; // 键值
|
|
|
+1377 2 }
|
|
|
+1378 1
|
|
|
+1379 1 if (KEY5_READ() == 0x00)
|
|
|
+1380 1 {
|
|
|
+1381 2 sScanKey[4].KeyIn = KEY5; // 键值
|
|
|
+1382 2 }
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 24
|
|
|
|
|
|
-1383 4 }
|
|
|
-1384 3 sScanKey[i].KeyPrsed = 0;
|
|
|
-1385 3 // KeyCodeBuf[KeyCodeHead].wKeyTime = 0;
|
|
|
-1386 3 sScanKey[i].key_l = 0;
|
|
|
-1387 3 sScanKey[i].key_h = 0;
|
|
|
-1388 3 }
|
|
|
-1389 2 else
|
|
|
-1390 2 {
|
|
|
-1391 3 sScanKey[i].KeyPrsTurn = 0;
|
|
|
-1392 3 sScanKey[i].KeyPrsed = 1;
|
|
|
-1393 3 sScanKey[i].KeyInpush = sScanKey[i].KeyIn;
|
|
|
-1394 3 sScanKey[i].key_l++; // 每10mS加1
|
|
|
-1395 3
|
|
|
-1396 3 if (sScanKey[i].key_l <= 1) // 一个按键按下只震动一次
|
|
|
-1397 3 {
|
|
|
-1398 4 shockStart = 1;
|
|
|
-1399 4 shockCounter = 0; // 有短按键按下,震动触发
|
|
|
-1400 4 }
|
|
|
-1401 3 }
|
|
|
-1402 2
|
|
|
-1403 2 if (sScanKey[i].key_l > 100) // 长按键处理,1000mS检测一次
|
|
|
-1404 2 {
|
|
|
-1405 3
|
|
|
-1406 3 if (sScanKey[i].key_h != 0x000000ff)
|
|
|
-1407 3 {
|
|
|
-1408 4 if (++KeyCodeHead >= KEYBUFLENGTH)
|
|
|
-1409 4 KeyCodeHead = 0;
|
|
|
-1410 4 sScanKey[i].key_h += 100;
|
|
|
-1411 4 KeyCodeBuf[KeyCodeHead].bKey = sScanKey[i].KeyInpush | LONG_KEY_MASK;
|
|
|
-1412 4 KeyCodeBuf[KeyCodeHead].wKeyTime = sScanKey[i].key_h;
|
|
|
-1413 4 sScanKey[i].key_l = 1; // 清除键值标志
|
|
|
-1414 4 }
|
|
|
-1415 3 else
|
|
|
+1383 1
|
|
|
+1384 1 if (KEY6_READ() == 0x00)
|
|
|
+1385 1 {
|
|
|
+1386 2 sScanKey[5].KeyIn = KEY6; // 键值
|
|
|
+1387 2 }
|
|
|
+1388 1 #endif
|
|
|
+1389 1 for (i = 0; i < KEY_MAX_NUM; i++) // 每次(10ms)扫键值,如1号键暂存入1
|
|
|
+1390 1 {
|
|
|
+1391 2 if (sScanKey[i].KeyIn == 0xff)
|
|
|
+1392 2 {
|
|
|
+1393 3 if (sScanKey[i].key_l > 1) // 有键按下释放
|
|
|
+1394 3 { // 释放按键
|
|
|
+1395 4
|
|
|
+1396 4 if (sScanKey[i].key_h < 100) // 按键时间少于1000mS则为短按键,存入键值
|
|
|
+1397 4 {
|
|
|
+1398 5 if (++KeyCodeHead >= KEYBUFLENGTH)
|
|
|
+1399 5 KeyCodeHead = 0;
|
|
|
+1400 5 KeyCodeBuf[KeyCodeHead].bKey = sScanKey[i].KeyInpush; // 说明键值释放了,存键值
|
|
|
+1401 5 }
|
|
|
+1402 4 }
|
|
|
+1403 3 sScanKey[i].KeyPrsed = 0;
|
|
|
+1404 3 // KeyCodeBuf[KeyCodeHead].wKeyTime = 0;
|
|
|
+1405 3 sScanKey[i].key_l = 0;
|
|
|
+1406 3 sScanKey[i].key_h = 0;
|
|
|
+1407 3 }
|
|
|
+1408 2 else
|
|
|
+1409 2 {
|
|
|
+1410 3 sScanKey[i].KeyPrsTurn = 0;
|
|
|
+1411 3 sScanKey[i].KeyPrsed = 1;
|
|
|
+1412 3 sScanKey[i].KeyInpush = sScanKey[i].KeyIn;
|
|
|
+1413 3 sScanKey[i].key_l++; // 每10mS加1
|
|
|
+1414 3
|
|
|
+1415 3 if (sScanKey[i].key_l <= 1) // 一个按键按下只震动一次
|
|
|
1416 3 {
|
|
|
-1417 4 sScanKey[i].key_l = 1; // 清除键值标志
|
|
|
-1418 4 }
|
|
|
-1419 3 }
|
|
|
-1420 2 }
|
|
|
-1421 1 }
|
|
|
-*** WARNING C280 IN LINE 1303 OF gpio_ctrl.c: 'row': unreferenced local variable
|
|
|
-*** WARNING C280 IN LINE 1305 OF gpio_ctrl.c: 'ReadValue': unreferenced local variable
|
|
|
-1422
|
|
|
-1423 /*******************************************************************************
|
|
|
-1424 Function: GetKey()
|
|
|
-1425 Description: 按键键值处理函数
|
|
|
-1426 Calls:
|
|
|
-1427 Called By:
|
|
|
-1428 Input: no
|
|
|
-1429 Output: 长按时间,单位:ms
|
|
|
-1430 Return: no
|
|
|
-1431 Others: no
|
|
|
-1432 ********************************************************************************/
|
|
|
-1433 byte GetKey(word *wTime)
|
|
|
-1434 {
|
|
|
-1435 1 if (KeyCodeTail != KeyCodeHead)
|
|
|
-1436 1 {
|
|
|
-1437 2 if (++KeyCodeTail >= KEYBUFLENGTH)
|
|
|
-1438 2 KeyCodeTail = 0;
|
|
|
-1439 2
|
|
|
-1440 2 if (wTime != NULL)
|
|
|
-1441 2 {
|
|
|
-1442 3 *wTime = KeyCodeBuf[KeyCodeTail].wKeyTime * 10; // 长按键时间,时间为wTime*10mS
|
|
|
-C51 COMPILER V9.53.0.0 GPIO_CTRL 11/12/2024 17:02:19 PAGE 25
|
|
|
+1417 4 shockStart = 1;
|
|
|
+1418 4 shockCounter = 0; // 有短按键按下,震动触发
|
|
|
+1419 4 }
|
|
|
+1420 3 }
|
|
|
+1421 2
|
|
|
+1422 2 if (sScanKey[i].key_l > 100) // 长按键处理,1000mS检测一次
|
|
|
+1423 2 {
|
|
|
+1424 3
|
|
|
+1425 3 if (sScanKey[i].key_h != 0x000000ff)
|
|
|
+1426 3 {
|
|
|
+1427 4 if (++KeyCodeHead >= KEYBUFLENGTH)
|
|
|
+1428 4 KeyCodeHead = 0;
|
|
|
+1429 4 sScanKey[i].key_h += 100;
|
|
|
+1430 4 KeyCodeBuf[KeyCodeHead].bKey = sScanKey[i].KeyInpush | LONG_KEY_MASK;
|
|
|
+1431 4 KeyCodeBuf[KeyCodeHead].wKeyTime = sScanKey[i].key_h;
|
|
|
+1432 4 sScanKey[i].key_l = 1; // 清除键值标志
|
|
|
+1433 4 }
|
|
|
+1434 3 else
|
|
|
+1435 3 {
|
|
|
+1436 4 sScanKey[i].key_l = 1; // 清除键值标志
|
|
|
+1437 4 }
|
|
|
+1438 3 }
|
|
|
+1439 2 }
|
|
|
+1440 1 }
|
|
|
+*** WARNING C280 IN LINE 1322 OF gpio_ctrl.c: 'row': unreferenced local variable
|
|
|
+*** WARNING C280 IN LINE 1324 OF gpio_ctrl.c: 'ReadValue': unreferenced local variable
|
|
|
+1441
|
|
|
+1442 /*******************************************************************************
|
|
|
+C51 COMPILER V9.53.0.0 GPIO_CTRL 11/15/2024 09:29:29 PAGE 25
|
|
|
|
|
|
-1443 3 KeyCodeBuf[KeyCodeTail].wKeyTime = 0;
|
|
|
-1444 3 }
|
|
|
-1445 2
|
|
|
-1446 2 return (KeyCodeBuf[KeyCodeTail].bKey);
|
|
|
-1447 2 }
|
|
|
-1448 1 else
|
|
|
-1449 1 {
|
|
|
-1450 2 return (NO_KEY_MSG);
|
|
|
-1451 2 }
|
|
|
-1452 1 }
|
|
|
+1443 Function: GetKey()
|
|
|
+1444 Description: 按键键值处理函数
|
|
|
+1445 Calls:
|
|
|
+1446 Called By:
|
|
|
+1447 Input: no
|
|
|
+1448 Output: 长按时间,单位:ms
|
|
|
+1449 Return: no
|
|
|
+1450 Others: no
|
|
|
+1451 ********************************************************************************/
|
|
|
+1452 byte GetKey(word *wTime)
|
|
|
+1453 {
|
|
|
+1454 1 if (KeyCodeTail != KeyCodeHead)
|
|
|
+1455 1 {
|
|
|
+1456 2 if (++KeyCodeTail >= KEYBUFLENGTH)
|
|
|
+1457 2 KeyCodeTail = 0;
|
|
|
+1458 2
|
|
|
+1459 2 if (wTime != NULL)
|
|
|
+1460 2 {
|
|
|
+1461 3 *wTime = KeyCodeBuf[KeyCodeTail].wKeyTime * 10; // 长按键时间,时间为wTime*10mS
|
|
|
+1462 3 KeyCodeBuf[KeyCodeTail].wKeyTime = 0;
|
|
|
+1463 3 }
|
|
|
+1464 2
|
|
|
+1465 2 return (KeyCodeBuf[KeyCodeTail].bKey);
|
|
|
+1466 2 }
|
|
|
+1467 1 else
|
|
|
+1468 1 {
|
|
|
+1469 2 return (NO_KEY_MSG);
|
|
|
+1470 2 }
|
|
|
+1471 1 }
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
- CODE SIZE = 2991 ----
|
|
|
+ CODE SIZE = 3020 ----
|
|
|
CONSTANT SIZE = ---- ----
|
|
|
XDATA SIZE = 115 11
|
|
|
PDATA SIZE = ---- ----
|