422 lines
20 KiB
Plaintext
422 lines
20 KiB
Plaintext
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 1
|
|||
|
|
|
|||
|
|
|
|||
|
|
C51 COMPILER V9.01, COMPILATION OF MODULE PWM_CONTROL
|
|||
|
|
OBJECT MODULE PLACED IN .\Objects\pwm_control.obj
|
|||
|
|
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE pwm_control.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listin
|
|||
|
|
-gs\pwm_control.lst) OBJECT(.\Objects\pwm_control.obj)
|
|||
|
|
|
|||
|
|
line level source
|
|||
|
|
|
|||
|
|
1 #include "pwm_control.h"
|
|||
|
|
2 #include "GPIO.h"
|
|||
|
|
3 #include "STC8xxxx.h"
|
|||
|
|
4 #include "PWM15bit.h"
|
|||
|
|
5 #include "timer.h"
|
|||
|
|
6 #include "UART_Set.h"
|
|||
|
|
7 #include "string.h"
|
|||
|
|
8 S_PWM s_pwm;
|
|||
|
|
9 /*
|
|||
|
|
10 *1.<2E><><EFBFBD><EFBFBD>5.0/5.1<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><EFBFBD>
|
|||
|
|
11 *2.<2E><>ʼ<EFBFBD><CABC>PWM<57><4D><EFBFBD><EFBFBD>
|
|||
|
|
12 *3.LED_DRV_12V_EN<45>õ<EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
13 */
|
|||
|
|
14 /******************* IO<49><4F><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> *******************/
|
|||
|
|
15 void GPIO_config(void)
|
|||
|
|
16 {
|
|||
|
|
17 1 GPIO_InitTypeDef GPIO_InitStructure; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|||
|
|
18 1 /***********************************1*******************************************/
|
|||
|
|
19 1 GPIO_InitStructure.Pin = GPIO_Pin_0 | GPIO_Pin_1; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
|||
|
|
20 1 GPIO_InitStructure.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
|||
|
|
-UT_PP
|
|||
|
|
21 1 GPIO_Inilize(GPIO_P5,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
22 1
|
|||
|
|
23 1 /***********************************2*******************************************/
|
|||
|
|
24 1 GPIO_InitStructure.Pin = GPIO_Pin_All; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
|||
|
|
25 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
|||
|
|
-UT_PP
|
|||
|
|
26 1 GPIO_Inilize(GPIO_P0,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
27 1
|
|||
|
|
28 1 GPIO_InitStructure.Pin = GPIO_Pin_Left; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
|||
|
|
29 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
|||
|
|
-UT_PP
|
|||
|
|
30 1 GPIO_Inilize(GPIO_P2,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
31 1
|
|||
|
|
32 1 /***********************************3*******************************************/
|
|||
|
|
33 1 GPIO_InitStructure.Pin = GPIO_Pin_0; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO, GPIO_Pin_0 ~ GPIO_Pin_7
|
|||
|
|
34 1 GPIO_InitStructure.Mode = GPIO_OUT_PP; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_O
|
|||
|
|
-UT_PP
|
|||
|
|
35 1 GPIO_Inilize(GPIO_P1,&GPIO_InitStructure); //<2F><>ʼ<EFBFBD><CABC>
|
|||
|
|
36 1 }
|
|||
|
|
37
|
|||
|
|
38 void pwm_config(void)
|
|||
|
|
39 {
|
|||
|
|
40 1 u8 i;
|
|||
|
|
41 1 PWM15_InitTypeDef PWM15_InitStructure;
|
|||
|
|
42 1
|
|||
|
|
43 1 PWM15_InitStructure.PWM_Enable = ENABLE; //PWMʹ<4D><CAB9>, ENABLE, DISABLE
|
|||
|
|
44 1 PWM15_InitStructure.PWM_Period = 0x04E2; //PWM<57><4D><EFBFBD><EFBFBD>, 1250,Ƶ<><C6B5>Ϊ16khz
|
|||
|
|
45 1 PWM15_InitStructure.PWM_Clock_Sel = PWMn_CLK_SYS; //ʱ<><CAB1>Դѡ<D4B4><D1A1>, PWMn_CLK_SYS, PWMn_CLK_TM2
|
|||
|
|
46 1 PWM15_InitStructure.PWM_Clock_PS = 0; //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>(PS+1<><31>Ƶ), 0~15
|
|||
|
|
47 1 PWM15_InitStructure.PWM_Counter = ENABLE; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, ENABLE, DISABLE
|
|||
|
|
48 1
|
|||
|
|
49 1 PWM15_Init(PWM0,&PWM15_InitStructure); //<2F><>ʼ<EFBFBD><CABC>PWM0
|
|||
|
|
50 1 PWM15_Init(PWM2,&PWM15_InitStructure); //<2F><>ʼ<EFBFBD><CABC>PWM2
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 2
|
|||
|
|
|
|||
|
|
51 1
|
|||
|
|
52 1 PWM15Duty(PWM00,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
|||
|
|
53 1 PWM15Duty(PWM01,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
|||
|
|
54 1 PWM15Duty(PWM02,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
|||
|
|
55 1 PWM15Duty(PWM03,initial_Val); //PWM_ID, <20><><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>
|
|||
|
|
56 1 PWM15Duty(PWM04,initial_Val);
|
|||
|
|
57 1 PWM15Duty(PWM05,initial_Val);
|
|||
|
|
58 1 PWM15Duty(PWM06,initial_Val);
|
|||
|
|
59 1 PWM15Duty(PWM07,initial_Val);
|
|||
|
|
60 1
|
|||
|
|
61 1 PWM15Duty(PWM20,initial_Val);
|
|||
|
|
62 1 PWM15Duty(PWM21,initial_Val);
|
|||
|
|
63 1 PWM15Duty(PWM22,initial_Val);
|
|||
|
|
64 1 PWM15Duty(PWM23,initial_Val);
|
|||
|
|
65 1
|
|||
|
|
66 1 memset(&s_pwm,0,sizeof(s_pwm));
|
|||
|
|
67 1 for(i=0;i<12;i++)
|
|||
|
|
68 1 {
|
|||
|
|
69 2 s_pwm.currpwm[i]=initial_Val;
|
|||
|
|
70 2 }
|
|||
|
|
71 1 PWMChannelCtrl(PWM00,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
72 1 PWMChannelCtrl(PWM01,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
73 1 PWMChannelCtrl(PWM02,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
74 1 PWMChannelCtrl(PWM03,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
75 1 PWMChannelCtrl(PWM04,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
76 1 PWMChannelCtrl(PWM05,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
77 1 PWMChannelCtrl(PWM06,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
78 1 PWMChannelCtrl(PWM07,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
79 1
|
|||
|
|
80 1 PWMChannelCtrl(PWM20,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
81 1 PWMChannelCtrl(PWM21,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
82 1 PWMChannelCtrl(PWM22,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
83 1 PWMChannelCtrl(PWM23,ENABLE,1,DISABLE,DISABLE,DISABLE); //PWM_ID, <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, <20><>ʼ<EFBFBD><CABC>ƽ, PWM<57>ж<EFBFBD>, <20>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
-<2D><><EFBFBD><EFBFBD>ж<EFBFBD>, <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
84 1
|
|||
|
|
85 1 }
|
|||
|
|
86
|
|||
|
|
87
|
|||
|
|
88 //10ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
89 void deal_command1(void)
|
|||
|
|
90 {
|
|||
|
|
91 1 int i=0;
|
|||
|
|
92 1 static u32 systick_command1 = 0;
|
|||
|
|
93 1
|
|||
|
|
94 1 if (systick_1ms - systick_command1 >= 10)
|
|||
|
|
95 1 {
|
|||
|
|
96 2 systick_command1 = systick_1ms;
|
|||
|
|
97 2 for (i = 0; i < 12; i++)
|
|||
|
|
98 2 {
|
|||
|
|
99 3 if (s_recv.flag1[i])
|
|||
|
|
100 3 {
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 3
|
|||
|
|
|
|||
|
|
101 4 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
|||
|
|
102 4 {
|
|||
|
|
103 5 //s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i];
|
|||
|
|
104 5 s_pwm.doublecurrpwm[i] += s_pwm.every_change_10ms[i];
|
|||
|
|
105 5 s_pwm.currpwm[i] = (u16)s_pwm.doublecurrpwm[i];
|
|||
|
|
106 5
|
|||
|
|
107 5 if(s_recv.global_brightness==0)
|
|||
|
|
108 5 {
|
|||
|
|
109 6 s_pwm.currvalue[i]=0;
|
|||
|
|
110 6 }
|
|||
|
|
111 5 else
|
|||
|
|
112 5 {
|
|||
|
|
113 6 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALU
|
|||
|
|
-E / s_recv.global_brightness;
|
|||
|
|
114 6 }
|
|||
|
|
115 5
|
|||
|
|
116 5 if ( s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
|||
|
|
117 5 {
|
|||
|
|
118 6 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
119 6 }
|
|||
|
|
120 5 }
|
|||
|
|
121 4
|
|||
|
|
122 4
|
|||
|
|
123 4 //<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4>ڵ<EFBFBD>ǰֵʱ
|
|||
|
|
124 4 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
|||
|
|
125 4 {
|
|||
|
|
126 5 //s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i];
|
|||
|
|
127 5 s_pwm.doublecurrpwm[i] -= s_pwm.every_change_10ms[i];
|
|||
|
|
128 5 s_pwm.currpwm[i] = (u16)s_pwm.doublecurrpwm[i];
|
|||
|
|
129 5
|
|||
|
|
130 5 if(s_recv.global_brightness==0)
|
|||
|
|
131 5 {
|
|||
|
|
132 6 s_pwm.currvalue[i]=0;
|
|||
|
|
133 6 }
|
|||
|
|
134 5 else
|
|||
|
|
135 5 {
|
|||
|
|
136 6 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_
|
|||
|
|
-brightness;
|
|||
|
|
137 6 }
|
|||
|
|
138 5
|
|||
|
|
139 5 if (s_pwm.currpwm[i] < s_pwm.wanttopwm[i] + s_pwm.every_change_10ms[i])
|
|||
|
|
140 5 {
|
|||
|
|
141 6 s_pwm.currpwm[i] = 0;
|
|||
|
|
142 6 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
143 6 }
|
|||
|
|
144 5 }
|
|||
|
|
145 4
|
|||
|
|
146 4
|
|||
|
|
147 4 if (s_pwm.wanttopwm[i] == s_pwm.currpwm[i])
|
|||
|
|
148 4 {
|
|||
|
|
149 5 s_pwm.currvalue[i] = s_recv.B_Ch[i];
|
|||
|
|
150 5 s_recv.flag1[i] = 0;
|
|||
|
|
151 5 }
|
|||
|
|
152 4 }
|
|||
|
|
153 3 }
|
|||
|
|
154 2 }
|
|||
|
|
155 1 }
|
|||
|
|
156
|
|||
|
|
157 void deal_command2(void)
|
|||
|
|
158 {
|
|||
|
|
159 1 int i=0;
|
|||
|
|
160 1 static u32 systick_command2 = 0;
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 4
|
|||
|
|
|
|||
|
|
161 1 if (systick_1ms - systick_command2 >= 10)
|
|||
|
|
162 1 {
|
|||
|
|
163 2 systick_command2 = systick_1ms;
|
|||
|
|
164 2 for (i = 0; i < 12; i++)
|
|||
|
|
165 2 {
|
|||
|
|
166 3 if (s_recv.flag2[i])
|
|||
|
|
167 3 {
|
|||
|
|
168 4 switch (s_recv.mode[i])
|
|||
|
|
169 4 {
|
|||
|
|
170 5 //<2F><><EFBFBD><EFBFBD>ֹͣģʽ
|
|||
|
|
171 5 case 0x00:
|
|||
|
|
172 5 //<2F><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD>
|
|||
|
|
173 5 if (s_recv.forward[i] == 0x00)
|
|||
|
|
174 5 {
|
|||
|
|
175 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_min * PWM_MAX_VALUE * s_recv.global_brightness
|
|||
|
|
- / 100 / 100 * s_recv.key_status[i];
|
|||
|
|
176 6 s_pwm.currpwm[i] += s_recv.pwm_step[i];
|
|||
|
|
177 6 if(s_recv.global_brightness==0)
|
|||
|
|
178 6 {
|
|||
|
|
179 7 s_pwm.currvalue[i]=0;
|
|||
|
|
180 7 }
|
|||
|
|
181 6 else
|
|||
|
|
182 6 {
|
|||
|
|
183 7 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_re
|
|||
|
|
-cv.global_brightness;
|
|||
|
|
184 7 }
|
|||
|
|
185 6 if (s_pwm.currpwm[i] >= s_pwm.wanttopwm[i])
|
|||
|
|
186 6 {
|
|||
|
|
187 7 s_recv.flag2[i] = 0;
|
|||
|
|
188 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
189 7 s_pwm.currvalue[i] = s_recv.B_min; //<2F><><EFBFBD>ڻظ<DABB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
190 7 }
|
|||
|
|
191 6 }
|
|||
|
|
192 5 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
193 5 if (s_recv.forward[i] == 0x01)
|
|||
|
|
194 5 {
|
|||
|
|
195 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_max * PWM_MAX_VALUE * s_recv.global_brightness
|
|||
|
|
- / 100 / 100 * s_recv.key_status[i];
|
|||
|
|
196 6 if (s_pwm.currpwm[i] <= s_pwm.wanttopwm[i] + s_recv.pwm_step[i])
|
|||
|
|
197 6 {
|
|||
|
|
198 7 s_recv.flag2[i] = 0;
|
|||
|
|
199 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
200 7 s_pwm.currvalue[i] = s_recv.B_max;
|
|||
|
|
201 7 }
|
|||
|
|
202 6 else
|
|||
|
|
203 6 {
|
|||
|
|
204 7 s_pwm.currpwm[i] -= s_recv.pwm_step[i];
|
|||
|
|
205 7 if(s_recv.global_brightness==0)
|
|||
|
|
206 7 {
|
|||
|
|
207 8 s_pwm.currvalue[i]=0;
|
|||
|
|
208 8 }
|
|||
|
|
209 7 else
|
|||
|
|
210 7 {
|
|||
|
|
211 8 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_b
|
|||
|
|
-rightness;
|
|||
|
|
212 8 }
|
|||
|
|
213 7 }
|
|||
|
|
214 6 }
|
|||
|
|
215 5 break;
|
|||
|
|
216 5
|
|||
|
|
217 5 //˫<><CBAB>ѭ<EFBFBD><D1AD>ģʽ
|
|||
|
|
218 5 case 0x01:
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 5
|
|||
|
|
|
|||
|
|
219 5 //<2F>ݼ<EFBFBD>
|
|||
|
|
220 5 if (s_recv.forward[i] == 0x00)
|
|||
|
|
221 5 {
|
|||
|
|
222 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_min * PWM_MAX_VALUE * s_recv.global_brightness
|
|||
|
|
- / 100 / 100 * s_recv.key_status[i];
|
|||
|
|
223 6 s_pwm.currpwm[i] += s_recv.pwm_step[i];
|
|||
|
|
224 6 if(s_recv.global_brightness==0)
|
|||
|
|
225 6 {
|
|||
|
|
226 7 s_pwm.currvalue[i]=0;
|
|||
|
|
227 7 }
|
|||
|
|
228 6 else
|
|||
|
|
229 6 {
|
|||
|
|
230 7 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_re
|
|||
|
|
-cv.global_brightness;
|
|||
|
|
231 7 }
|
|||
|
|
232 6 if (s_pwm.currpwm[i] >= s_pwm.wanttopwm[i])
|
|||
|
|
233 6 {
|
|||
|
|
234 7 s_recv.forward[i] = 0x01;
|
|||
|
|
235 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
236 7 s_pwm.currvalue[i] = s_recv.B_min; //<2F><><EFBFBD>ڻظ<DABB><D8B8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
237 7 }
|
|||
|
|
238 6 }
|
|||
|
|
239 5 //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
240 5 if (s_recv.forward[i] == 0x01)
|
|||
|
|
241 5 {
|
|||
|
|
242 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_max * PWM_MAX_VALUE * s_recv.global_brightness
|
|||
|
|
- / 100 / 100 * s_recv.key_status[i];
|
|||
|
|
243 6 if (s_pwm.currpwm[i] <= s_pwm.wanttopwm[i] + s_recv.pwm_step[i])
|
|||
|
|
244 6 {
|
|||
|
|
245 7 s_recv.forward[i] = 0x00;
|
|||
|
|
246 7 s_pwm.currpwm[i] = s_pwm.wanttopwm[i];
|
|||
|
|
247 7 s_pwm.currvalue[i] = s_recv.B_max;
|
|||
|
|
248 7 }
|
|||
|
|
249 6 else
|
|||
|
|
250 6 {
|
|||
|
|
251 7 s_pwm.currpwm[i] -= s_recv.pwm_step[i];
|
|||
|
|
252 7 if(s_recv.global_brightness==0)
|
|||
|
|
253 7 {
|
|||
|
|
254 8 s_pwm.currvalue[i]=0;
|
|||
|
|
255 8 }
|
|||
|
|
256 7 else
|
|||
|
|
257 7 {
|
|||
|
|
258 8 s_pwm.currvalue[i] = (PWM_MAX_VALUE - s_pwm.currpwm[i]) * 100 * 100 / PWM_MAX_VALUE / s_recv.global_b
|
|||
|
|
-rightness;
|
|||
|
|
259 8 }
|
|||
|
|
260 7 }
|
|||
|
|
261 6 }
|
|||
|
|
262 5 break;
|
|||
|
|
263 5 case 0x02:
|
|||
|
|
264 5 //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
|||
|
|
265 5 s_recv.flag2[i] = 0;
|
|||
|
|
266 5 break;
|
|||
|
|
267 5 }
|
|||
|
|
268 4 }
|
|||
|
|
269 3 }
|
|||
|
|
270 2 }
|
|||
|
|
271 1 }
|
|||
|
|
272
|
|||
|
|
273
|
|||
|
|
274 //ֱ<>ӹص<D3B9><D8B5><EFBFBD>,<2C><><EFBFBD><EFBFBD>¼״̬
|
|||
|
|
275 void Close_Light(u8 i)
|
|||
|
|
276 {
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 6
|
|||
|
|
|
|||
|
|
277 1 s_pwm.currpwm[i]=20001ul; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD>
|
|||
|
|
278 1 }
|
|||
|
|
279
|
|||
|
|
280 //<2F><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
281 void Open_Light(u8 pin)
|
|||
|
|
282 {
|
|||
|
|
283 1 s_pwm.currpwm[pin] = PWM_MAX_VALUE - s_pwm.currvalue[pin] * PWM_MAX_VALUE * s_recv.global_brightness / 10
|
|||
|
|
-0 / 100;
|
|||
|
|
284 1 }
|
|||
|
|
285
|
|||
|
|
286 void PWM_write(u8 i, u16 Val)
|
|||
|
|
287 {
|
|||
|
|
288 1 switch (i)
|
|||
|
|
289 1 {
|
|||
|
|
290 2 case 0:
|
|||
|
|
291 2 PWM15Duty(PWM07,Val);
|
|||
|
|
292 2 break;
|
|||
|
|
293 2 case 1:
|
|||
|
|
294 2 PWM15Duty(PWM06,Val);
|
|||
|
|
295 2 break;
|
|||
|
|
296 2 case 2:
|
|||
|
|
297 2 PWM15Duty(PWM05,Val);
|
|||
|
|
298 2 break;
|
|||
|
|
299 2 case 3:
|
|||
|
|
300 2 PWM15Duty(PWM04,Val);
|
|||
|
|
301 2 break;
|
|||
|
|
302 2 case 4:
|
|||
|
|
303 2 PWM15Duty(PWM03,Val);
|
|||
|
|
304 2 break;
|
|||
|
|
305 2 case 5:
|
|||
|
|
306 2 PWM15Duty(PWM02,Val);
|
|||
|
|
307 2 break;
|
|||
|
|
308 2 case 6:
|
|||
|
|
309 2 PWM15Duty(PWM01,Val);
|
|||
|
|
310 2 break;
|
|||
|
|
311 2 case 7:
|
|||
|
|
312 2 PWM15Duty(PWM00,Val);
|
|||
|
|
313 2 break;
|
|||
|
|
314 2 case 8:
|
|||
|
|
315 2 PWM15Duty(PWM23,Val);
|
|||
|
|
316 2 break;
|
|||
|
|
317 2 case 9:
|
|||
|
|
318 2 PWM15Duty(PWM22,Val);
|
|||
|
|
319 2 break;
|
|||
|
|
320 2 case 10:
|
|||
|
|
321 2 PWM15Duty(PWM21,Val);
|
|||
|
|
322 2 break;
|
|||
|
|
323 2 case 11:
|
|||
|
|
324 2 PWM15Duty(PWM20,Val);
|
|||
|
|
325 2 break;
|
|||
|
|
326 2 }
|
|||
|
|
327 1 }
|
|||
|
|
328 void show_light(void)
|
|||
|
|
329 {
|
|||
|
|
330 1 int i;
|
|||
|
|
331 1 for (i = 0; i < 12; i++)
|
|||
|
|
332 1 {
|
|||
|
|
333 2 if(s_pwm.currpwm[i]==20000ul)
|
|||
|
|
334 2 {
|
|||
|
|
335 3 Close_Light(i);
|
|||
|
|
336 3 }
|
|||
|
|
337 2 else
|
|||
|
|
C51 COMPILER V9.01 PWM_CONTROL 12/15/2025 20:45:04 PAGE 7
|
|||
|
|
|
|||
|
|
338 2 {
|
|||
|
|
339 3 PWM_write(i, s_pwm.currpwm[i]);
|
|||
|
|
340 3 }
|
|||
|
|
341 2 }
|
|||
|
|
342 1 }
|
|||
|
|
343
|
|||
|
|
344 //void checkpwm(void)
|
|||
|
|
345 //{
|
|||
|
|
346 // int i;
|
|||
|
|
347 // for (i = 0; i < 12; i++)
|
|||
|
|
348 // {
|
|||
|
|
349 // if ((s_recv.flag1[i] == 0) && (s_recv.flag2[i] == 0) && (s_recv.changeflag == 1))
|
|||
|
|
350 // {
|
|||
|
|
351 // if (s_pwm.wanttopwmflash[i] != s_pwm.currpwm[i])
|
|||
|
|
352 // {
|
|||
|
|
353 // s_pwm.currpwm[i] = s_pwm.wanttopwmflash[i];
|
|||
|
|
354 // }
|
|||
|
|
355 // }
|
|||
|
|
356 // }
|
|||
|
|
357 // s_recv.changeflag = 0;
|
|||
|
|
358 //}
|
|||
|
|
|
|||
|
|
|
|||
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|||
|
|
CODE SIZE = 3842 ----
|
|||
|
|
CONSTANT SIZE = ---- ----
|
|||
|
|
XDATA SIZE = 241 ----
|
|||
|
|
PDATA SIZE = ---- ----
|
|||
|
|
DATA SIZE = 8 18
|
|||
|
|
IDATA SIZE = ---- ----
|
|||
|
|
BIT SIZE = ---- ----
|
|||
|
|
END OF MODULE INFORMATION.
|
|||
|
|
|
|||
|
|
|
|||
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|