2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 1
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.01, COMPILATION OF MODULE PWM15BIT
|
|
|
|
|
|
OBJECT MODULE PLACED IN .\Objects\PWM15bit.obj
|
|
|
|
|
|
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE PWM15bit.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\
|
|
|
|
|
|
-PWM15bit.lst) OBJECT(.\Objects\PWM15bit.obj)
|
|
|
|
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
|
|
|
|
1 /*---------------------------------------------------------------------*/
|
|
|
|
|
|
2 /* --- STC MCU Limited ------------------------------------------------*/
|
|
|
|
|
|
3 /* --- STC 1T Series MCU Demo Programme -------------------------------*/
|
|
|
|
|
|
4 /* --- Mobile: (86)13922805190 ----------------------------------------*/
|
|
|
|
|
|
5 /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
|
|
|
|
|
|
6 /* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
|
|
|
|
|
|
7 /* --- Web: www.STCMCU.com --------------------------------------------*/
|
|
|
|
|
|
8 /* --- Web: www.STCMCUDATA.com ---------------------------------------*/
|
|
|
|
|
|
9 /* --- QQ: 800003751 -------------------------------------------------*/
|
|
|
|
|
|
10 /* <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ô˴<C3B4><CBB4><EFBFBD>,<2C><><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>STC<54><43><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
|
11 /*---------------------------------------------------------------------*/
|
|
|
|
|
|
12
|
|
|
|
|
|
13 #include "PWM15bit.h"
|
|
|
|
|
|
14
|
|
|
|
|
|
15 u16 code PWMxCR[48] = {
|
|
|
|
|
|
16 0xff14, /* PWM00CR */
|
|
|
|
|
|
17 0xff1c, /* PWM01CR */
|
|
|
|
|
|
18 0xff24, /* PWM02CR */
|
|
|
|
|
|
19 0xff2c, /* PWM03CR */
|
|
|
|
|
|
20 0xff34, /* PWM04CR */
|
|
|
|
|
|
21 0xff3c, /* PWM05CR */
|
|
|
|
|
|
22 0xff44, /* PWM06CR */
|
|
|
|
|
|
23 0xff4c, /* PWM07CR */
|
|
|
|
|
|
24 0xff64, /* PWM10CR */
|
|
|
|
|
|
25 0xff6c, /* PWM11CR */
|
|
|
|
|
|
26 0xff74, /* PWM12CR */
|
|
|
|
|
|
27 0xff7c, /* PWM13CR */
|
|
|
|
|
|
28 0xff84, /* PWM14CR */
|
|
|
|
|
|
29 0xff8c, /* PWM15CR */
|
|
|
|
|
|
30 0xff94, /* PWM16CR */
|
|
|
|
|
|
31 0xff9c, /* PWM17CR */
|
|
|
|
|
|
32 0xffb4, /* PWM20CR */
|
|
|
|
|
|
33 0xffbc, /* PWM21CR */
|
|
|
|
|
|
34 0xffc4, /* PWM22CR */
|
|
|
|
|
|
35 0xffcc, /* PWM23CR */
|
|
|
|
|
|
36 0xffd4, /* PWM24CR */
|
|
|
|
|
|
37 0xffdc, /* PWM25CR */
|
|
|
|
|
|
38 0xffe4, /* PWM26CR */
|
|
|
|
|
|
39 0xffec, /* PWM27CR */
|
|
|
|
|
|
40 0xfc14, /* PWM30CR */
|
|
|
|
|
|
41 0xfc1c, /* PWM31CR */
|
|
|
|
|
|
42 0xfc24, /* PWM32CR */
|
|
|
|
|
|
43 0xfc2c, /* PWM33CR */
|
|
|
|
|
|
44 0xfc34, /* PWM34CR */
|
|
|
|
|
|
45 0xfc3c, /* PWM35CR */
|
|
|
|
|
|
46 0xfc44, /* PWM36CR */
|
|
|
|
|
|
47 0xfc4c, /* PWM37CR */
|
|
|
|
|
|
48 0xfc64, /* PWM40CR */
|
|
|
|
|
|
49 0xfc6c, /* PWM41CR */
|
|
|
|
|
|
50 0xfc74, /* PWM42CR */
|
|
|
|
|
|
51 0xfc7c, /* PWM43CR */
|
|
|
|
|
|
52 0xfc84, /* PWM44CR */
|
|
|
|
|
|
53 0xfc8c, /* PWM45CR */
|
|
|
|
|
|
54 0xfc94, /* PWM46CR */
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 2
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
55 0xfc9c, /* PWM47CR */
|
|
|
|
|
|
56 0xfcb4, /* PWM50CR */
|
|
|
|
|
|
57 0xfcbc, /* PWM51CR */
|
|
|
|
|
|
58 0xfcc4, /* PWM52CR */
|
|
|
|
|
|
59 0xfccc, /* PWM53CR */
|
|
|
|
|
|
60 0xfcd4, /* PWM54CR */
|
|
|
|
|
|
61 0xfcdc, /* PWM55CR */
|
|
|
|
|
|
62 0xfce4, /* PWM56CR */
|
|
|
|
|
|
63 0xfcec, /* PWM57CR */
|
|
|
|
|
|
64 };
|
|
|
|
|
|
65
|
|
|
|
|
|
66 u16 code PWMxT1[48] = {
|
|
|
|
|
|
67 0xff10, /* PWM00T1 */
|
|
|
|
|
|
68 0xff18, /* PWM01T1 */
|
|
|
|
|
|
69 0xff20, /* PWM02T1 */
|
|
|
|
|
|
70 0xff28, /* PWM03T1 */
|
|
|
|
|
|
71 0xff30, /* PWM04T1 */
|
|
|
|
|
|
72 0xff38, /* PWM05T1 */
|
|
|
|
|
|
73 0xff40, /* PWM06T1 */
|
|
|
|
|
|
74 0xff48, /* PWM07T1 */
|
|
|
|
|
|
75 0xff60, /* PWM10T1 */
|
|
|
|
|
|
76 0xff68, /* PWM11T1 */
|
|
|
|
|
|
77 0xff70, /* PWM12T1 */
|
|
|
|
|
|
78 0xff78, /* PWM13T1 */
|
|
|
|
|
|
79 0xff80, /* PWM14T1 */
|
|
|
|
|
|
80 0xff88, /* PWM15T1 */
|
|
|
|
|
|
81 0xff90, /* PWM16T1 */
|
|
|
|
|
|
82 0xff98, /* PWM17T1 */
|
|
|
|
|
|
83 0xffb0, /* PWM20T1 */
|
|
|
|
|
|
84 0xffb8, /* PWM21T1 */
|
|
|
|
|
|
85 0xffc0, /* PWM22T1 */
|
|
|
|
|
|
86 0xffc8, /* PWM23T1 */
|
|
|
|
|
|
87 0xffd0, /* PWM24T1 */
|
|
|
|
|
|
88 0xffd8, /* PWM25T1 */
|
|
|
|
|
|
89 0xffe0, /* PWM26T1 */
|
|
|
|
|
|
90 0xffe8, /* PWM27T1 */
|
|
|
|
|
|
91 0xfc10, /* PWM30T1 */
|
|
|
|
|
|
92 0xfc18, /* PWM31T1 */
|
|
|
|
|
|
93 0xfc20, /* PWM32T1 */
|
|
|
|
|
|
94 0xfc28, /* PWM33T1 */
|
|
|
|
|
|
95 0xfc30, /* PWM34T1 */
|
|
|
|
|
|
96 0xfc38, /* PWM35T1 */
|
|
|
|
|
|
97 0xfc40, /* PWM36T1 */
|
|
|
|
|
|
98 0xfc48, /* PWM37T1 */
|
|
|
|
|
|
99 0xfc60, /* PWM40T1 */
|
|
|
|
|
|
100 0xfc68, /* PWM41T1 */
|
|
|
|
|
|
101 0xfc70, /* PWM42T1 */
|
|
|
|
|
|
102 0xfc78, /* PWM43T1 */
|
|
|
|
|
|
103 0xfc80, /* PWM44T1 */
|
|
|
|
|
|
104 0xfc88, /* PWM45T1 */
|
|
|
|
|
|
105 0xfc90, /* PWM46T1 */
|
|
|
|
|
|
106 0xfc98, /* PWM47T1 */
|
|
|
|
|
|
107 0xfcb0, /* PWM50T1 */
|
|
|
|
|
|
108 0xfcb8, /* PWM51T1 */
|
|
|
|
|
|
109 0xfcc0, /* PWM52T1 */
|
|
|
|
|
|
110 0xfcc8, /* PWM53T1 */
|
|
|
|
|
|
111 0xfcd0, /* PWM54T1 */
|
|
|
|
|
|
112 0xfcd8, /* PWM55T1 */
|
|
|
|
|
|
113 0xfce0, /* PWM56T1 */
|
|
|
|
|
|
114 0xfce8, /* PWM57T1 */
|
|
|
|
|
|
115 };
|
|
|
|
|
|
116
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 3
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
117 u16 code PWMxT2[48] = {
|
|
|
|
|
|
118 0xff12, /* PWM00T2 */
|
|
|
|
|
|
119 0xff1a, /* PWM01T2 */
|
|
|
|
|
|
120 0xff22, /* PWM02T2 */
|
|
|
|
|
|
121 0xff2a, /* PWM03T2 */
|
|
|
|
|
|
122 0xff32, /* PWM04T2 */
|
|
|
|
|
|
123 0xff3a, /* PWM05T2 */
|
|
|
|
|
|
124 0xff42, /* PWM06T2 */
|
|
|
|
|
|
125 0xff4a, /* PWM07T2 */
|
|
|
|
|
|
126 0xff62, /* PWM10T2 */
|
|
|
|
|
|
127 0xff6a, /* PWM11T2 */
|
|
|
|
|
|
128 0xff72, /* PWM12T2 */
|
|
|
|
|
|
129 0xff7a, /* PWM13T2 */
|
|
|
|
|
|
130 0xff82, /* PWM14T2 */
|
|
|
|
|
|
131 0xff8a, /* PWM15T2 */
|
|
|
|
|
|
132 0xff92, /* PWM16T2 */
|
|
|
|
|
|
133 0xff9a, /* PWM17T2 */
|
|
|
|
|
|
134 0xffb2, /* PWM20T2 */
|
|
|
|
|
|
135 0xffba, /* PWM21T2 */
|
|
|
|
|
|
136 0xffc2, /* PWM22T2 */
|
|
|
|
|
|
137 0xffca, /* PWM23T2 */
|
|
|
|
|
|
138 0xffd2, /* PWM24T2 */
|
|
|
|
|
|
139 0xffda, /* PWM25T2 */
|
|
|
|
|
|
140 0xffe2, /* PWM26T2 */
|
|
|
|
|
|
141 0xffea, /* PWM27T2 */
|
|
|
|
|
|
142 0xfc12, /* PWM30T2 */
|
|
|
|
|
|
143 0xfc1a, /* PWM31T2 */
|
|
|
|
|
|
144 0xfc22, /* PWM32T2 */
|
|
|
|
|
|
145 0xfc2a, /* PWM33T2 */
|
|
|
|
|
|
146 0xfc32, /* PWM34T2 */
|
|
|
|
|
|
147 0xfc3a, /* PWM35T2 */
|
|
|
|
|
|
148 0xfc42, /* PWM36T2 */
|
|
|
|
|
|
149 0xfc4a, /* PWM37T2 */
|
|
|
|
|
|
150 0xfc62, /* PWM40T2 */
|
|
|
|
|
|
151 0xfc6a, /* PWM41T2 */
|
|
|
|
|
|
152 0xfc72, /* PWM42T2 */
|
|
|
|
|
|
153 0xfc7a, /* PWM43T2 */
|
|
|
|
|
|
154 0xfc82, /* PWM44T2 */
|
|
|
|
|
|
155 0xfc8a, /* PWM45T2 */
|
|
|
|
|
|
156 0xfc92, /* PWM46T2 */
|
|
|
|
|
|
157 0xfc9a, /* PWM47T2 */
|
|
|
|
|
|
158 0xfcb2, /* PWM50T2 */
|
|
|
|
|
|
159 0xfcba, /* PWM51T2 */
|
|
|
|
|
|
160 0xfcc2, /* PWM52T2 */
|
|
|
|
|
|
161 0xfcca, /* PWM53T2 */
|
|
|
|
|
|
162 0xfcd2, /* PWM54T2 */
|
|
|
|
|
|
163 0xfcda, /* PWM55T2 */
|
|
|
|
|
|
164 0xfce2, /* PWM56T2 */
|
|
|
|
|
|
165 0xfcea, /* PWM57T2 */
|
|
|
|
|
|
166 };
|
|
|
|
|
|
167
|
|
|
|
|
|
168 u16 code PWMxHLD[48] = {
|
|
|
|
|
|
169 0xff15, /* PWM00HLD */
|
|
|
|
|
|
170 0xff1d, /* PWM01HLD */
|
|
|
|
|
|
171 0xff25, /* PWM02HLD */
|
|
|
|
|
|
172 0xff2d, /* PWM03HLD */
|
|
|
|
|
|
173 0xff35, /* PWM04HLD */
|
|
|
|
|
|
174 0xff3d, /* PWM05HLD */
|
|
|
|
|
|
175 0xff45, /* PWM06HLD */
|
|
|
|
|
|
176 0xff4d, /* PWM07HLD */
|
|
|
|
|
|
177 0xff65, /* PWM10HLD */
|
|
|
|
|
|
178 0xff6d, /* PWM11HLD */
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 4
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
179 0xff75, /* PWM12HLD */
|
|
|
|
|
|
180 0xff7d, /* PWM13HLD */
|
|
|
|
|
|
181 0xff85, /* PWM14HLD */
|
|
|
|
|
|
182 0xff8d, /* PWM15HLD */
|
|
|
|
|
|
183 0xff95, /* PWM16HLD */
|
|
|
|
|
|
184 0xff9d, /* PWM17HLD */
|
|
|
|
|
|
185 0xffb5, /* PWM20HLD */
|
|
|
|
|
|
186 0xffbd, /* PWM21HLD */
|
|
|
|
|
|
187 0xffc5, /* PWM22HLD */
|
|
|
|
|
|
188 0xffcd, /* PWM23HLD */
|
|
|
|
|
|
189 0xffd5, /* PWM24HLD */
|
|
|
|
|
|
190 0xffdd, /* PWM25HLD */
|
|
|
|
|
|
191 0xffe5, /* PWM26HLD */
|
|
|
|
|
|
192 0xffed, /* PWM27HLD */
|
|
|
|
|
|
193 0xfc15, /* PWM30HLD */
|
|
|
|
|
|
194 0xfc1d, /* PWM31HLD */
|
|
|
|
|
|
195 0xfc25, /* PWM32HLD */
|
|
|
|
|
|
196 0xfc2d, /* PWM33HLD */
|
|
|
|
|
|
197 0xfc35, /* PWM34HLD */
|
|
|
|
|
|
198 0xfc3d, /* PWM35HLD */
|
|
|
|
|
|
199 0xfc45, /* PWM36HLD */
|
|
|
|
|
|
200 0xfc4d, /* PWM37HLD */
|
|
|
|
|
|
201 0xfc65, /* PWM40HLD */
|
|
|
|
|
|
202 0xfc6d, /* PWM41HLD */
|
|
|
|
|
|
203 0xfc75, /* PWM42HLD */
|
|
|
|
|
|
204 0xfc7d, /* PWM43HLD */
|
|
|
|
|
|
205 0xfc85, /* PWM44HLD */
|
|
|
|
|
|
206 0xfc8d, /* PWM45HLD */
|
|
|
|
|
|
207 0xfc95, /* PWM46HLD */
|
|
|
|
|
|
208 0xfc9d, /* PWM47HLD */
|
|
|
|
|
|
209 0xfcb5, /* PWM50HLD */
|
|
|
|
|
|
210 0xfcbd, /* PWM51HLD */
|
|
|
|
|
|
211 0xfcc5, /* PWM52HLD */
|
|
|
|
|
|
212 0xfccd, /* PWM53HLD */
|
|
|
|
|
|
213 0xfcd5, /* PWM54HLD */
|
|
|
|
|
|
214 0xfcdd, /* PWM55HLD */
|
|
|
|
|
|
215 0xfce5, /* PWM56HLD */
|
|
|
|
|
|
216 0xfced, /* PWM57HLD */
|
|
|
|
|
|
217 };
|
|
|
|
|
|
218
|
|
|
|
|
|
219 //========================================================================
|
|
|
|
|
|
220 // <20><><EFBFBD><EFBFBD>: u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
|
|
|
|
|
|
221 // <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
222 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
|
|
|
|
|
223 // pwm_eno: pwm<77><6D><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>, 0<><30>ΪGPIO, 1<><31>ΪPWM<57><4D><EFBFBD><EFBFBD>.
|
|
|
|
|
|
224 // pwm_ini: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ, 0Ϊ<30>͵<EFBFBD>ƽ, 1Ϊ<31>ߵ<EFBFBD>ƽ.
|
|
|
|
|
|
225 // pwm_eni: pwmͨ<6D><CDA8><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ж<EFBFBD>.
|
|
|
|
|
|
226 // pwm_ent2i: pwmͨ<6D><CDA8><EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
|
|
|
|
|
227 // pwm_ent1i: pwmͨ<6D><CDA8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>, 0Ϊ<30>ر<EFBFBD>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>, 1Ϊʹ<CEAA><CAB9>PWM<57><4D>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>.
|
|
|
|
|
|
228 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
229 // <20>汾: V1.0, 2020-09-22
|
|
|
|
|
|
230 //========================================================================
|
|
|
|
|
|
231 u8 PWMChannelCtrl(u8 PWM_id, u8 pwm_eno, u8 pwm_ini, u8 pwm_eni, u8 pwm_ent2i, u8 pwm_ent1i)
|
|
|
|
|
|
232 {
|
|
|
|
|
|
233 1 u8 xdata *pPWMxCR;
|
|
|
|
|
|
234 1
|
|
|
|
|
|
235 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
|
|
|
|
|
236 1 if(pwm_eno > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|
|
|
|
|
237 1 if(pwm_ini > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
238 1 if(pwm_eni > 1) return 2; //<2F>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
|
|
|
|
|
239 1 if(pwm_ent2i > 1) return 2; //<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
|
|
|
|
|
240 1 if(pwm_ent1i > 1) return 2; //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD>ܿ<EFBFBD><DCBF>ƴ<EFBFBD><C6B4><EFBFBD>
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 5
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
241 1
|
|
|
|
|
|
242 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
|
|
|
|
|
243 1 pPWMxCR = (u8 *)PWMxCR[PWM_id];
|
|
|
|
|
|
244 1 *pPWMxCR = (pwm_eno << 7) | (pwm_ini << 6) | (pwm_eni << 2)| (pwm_ent2i << 1)| pwm_ent1i;
|
|
|
|
|
|
245 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
|
|
|
|
|
246 1 return 0;
|
|
|
|
|
|
247 1 }
|
|
|
|
|
|
248
|
|
|
|
|
|
249 //========================================================================
|
|
|
|
|
|
250 // <20><><EFBFBD><EFBFBD>: u8 PWMPeriodDuty(u8 PWM_id, u16 Period, u16 dutyL, u16 dutyH)
|
|
|
|
|
|
251 // <20><><EFBFBD><EFBFBD>: PWM<57><4D><EFBFBD><EFBFBD>, ռ<>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
252 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
|
|
|
|
|
253 // dutyL: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
|
|
|
|
|
|
254 // dutyH: pwm<77><6D><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽλ<C6BD><CEBB>, ȡֵ 0~0x7fff.
|
|
|
|
|
|
255 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
256 // <20>汾: V1.0, 2020-09-22
|
|
|
|
|
|
257 //========================================================================
|
|
|
|
|
|
258 u8 PWM15Duty(u8 PWM_id,u16 dutyL)
|
|
|
|
|
|
259 {
|
|
|
|
|
|
260 1 u16 xdata *pPWMxT1;
|
|
|
|
|
|
261 1 u16 xdata *pPWMxT2;
|
|
|
|
|
|
262 1
|
|
|
|
|
|
263 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
|
|
|
|
|
264 1 if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
265 1 //if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
266 1
|
|
|
|
|
|
267 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
|
|
|
|
|
268 1 pPWMxT1 = (u16 *)PWMxT1[PWM_id];
|
|
|
|
|
|
269 1 *pPWMxT1 = dutyL & 0x7fff;
|
|
|
|
|
|
270 1
|
|
|
|
|
|
271 1 pPWMxT2 = (u16 *)PWMxT2[PWM_id];
|
|
|
|
|
|
272 1 *pPWMxT2 = 0x0000 & 0x7fff;
|
|
|
|
|
|
273 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
|
|
|
|
|
274 1 return 0;
|
|
|
|
|
|
275 1 }
|
|
|
|
|
|
276
|
|
|
|
|
|
277 u8 qPWM15Duty(u8 PWM_id,u16 dutyL, u16 dutyH)
|
|
|
|
|
|
278 {
|
|
|
|
|
|
279 1 u16 xdata *pPWMxT1;
|
|
|
|
|
|
280 1 u16 xdata *pPWMxT2;
|
|
|
|
|
|
281 1
|
|
|
|
|
|
282 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
|
|
|
|
|
283 1 if(dutyL > 0x7fff) return 2; //<2F>͵<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
284 1 if(dutyH > 0x7fff) return 2; //<2F>ߵ<EFBFBD>ƽʱ<C6BD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
|
|
|
|
|
|
285 1
|
|
|
|
|
|
286 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
|
|
|
|
|
287 1 pPWMxT1 = (u16 *)PWMxT1[PWM_id];
|
|
|
|
|
|
288 1 *pPWMxT1 = dutyL & 0x7fff;
|
|
|
|
|
|
289 1
|
|
|
|
|
|
290 1 pPWMxT2 = (u16 *)PWMxT2[PWM_id];
|
|
|
|
|
|
291 1 *pPWMxT2 = dutyH & 0x7fff;
|
|
|
|
|
|
292 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
|
|
|
|
|
293 1 return 0;
|
|
|
|
|
|
294 1 }
|
|
|
|
|
|
295 //========================================================================
|
|
|
|
|
|
296 // <20><><EFBFBD><EFBFBD>: u8 PWMOutputSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
|
|
|
|
|
|
297 // <20><><EFBFBD><EFBFBD>: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
298 // <20><><EFBFBD><EFBFBD>: PWM_id: PWMͨ<4D><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ȡֵ 0~57
|
|
|
|
|
|
299 // pwm_hldl: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ.
|
|
|
|
|
|
300 // pwm_hldh: pwmǿ<6D><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>λ, 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1ǿ<31><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ.
|
|
|
|
|
|
301 // <20><><EFBFBD><EFBFBD>: 0:<3A><>ȷ, 2:<3A><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
302 // <20>汾: V1.0, 2020-09-22
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 6
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
303 //========================================================================
|
|
|
|
|
|
304 u8 PWMLevelSet(u8 PWM_id, u8 pwm_hldl, u8 pwm_hldh)
|
|
|
|
|
|
305 {
|
|
|
|
|
|
306 1 u8 xdata *pPWMxHLD;
|
|
|
|
|
|
307 1
|
|
|
|
|
|
308 1 if(PWM_id > PWM57) return 2; //id<69><64><EFBFBD><EFBFBD>
|
|
|
|
|
|
309 1 if(pwm_hldh > 1) return 2; //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
|
|
|
|
|
310 1 if(pwm_hldl > 1) return 2; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵ij<CBB5>ʼ<EFBFBD><CABC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
|
|
|
|
|
|
311 1
|
|
|
|
|
|
312 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
|
|
|
|
|
313 1 pPWMxHLD = (u8 *)PWMxHLD[PWM_id];
|
|
|
|
|
|
314 1 *pPWMxHLD = (pwm_hldh << 1) | pwm_hldl;
|
|
|
|
|
|
315 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
|
|
|
|
|
316 1 return 0;
|
|
|
|
|
|
317 1 }
|
|
|
|
|
|
318
|
|
|
|
|
|
319 //========================================================================
|
|
|
|
|
|
320 // <20><><EFBFBD><EFBFBD>: void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
|
|
|
|
|
|
321 // <20><><EFBFBD><EFBFBD>: 15λ<35><CEBB>ǿ<EFBFBD><C7BF>PWM<57><4D>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
322 // <20><><EFBFBD><EFBFBD>: PWM_id: PWM<57><4D><EFBFBD><EFBFBD>. ȡֵ PWM0,PWM1,PWM2,PWM3,PWM4,PWM5
|
|
|
|
|
|
323 // PWMx: <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>,<2C><><EFBFBD>ο<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>.
|
|
|
|
|
|
324 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
325 // <20>汾: V1.0, 2020-09-22
|
|
|
|
|
|
326 //========================================================================
|
|
|
|
|
|
327 void PWM15_Init(u8 PWM_id, PWM15_InitTypeDef *PWMx)
|
|
|
|
|
|
328 {
|
|
|
|
|
|
329 1 if(PWM_id > PWM5) return; //id<69><64><EFBFBD><EFBFBD>
|
|
|
|
|
|
330 1
|
|
|
|
|
|
331 1 EAXSFR(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չSFR(XSFR) */
|
|
|
|
|
|
332 1 if(PWM_id == PWM0)
|
|
|
|
|
|
333 1 {
|
|
|
|
|
|
334 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM0_Enable(); //ʹ<><CAB9>PWM0
|
|
|
|
|
|
335 2 else PWM15_PWM0_Disable(); //<2F>ر<EFBFBD>PWM0
|
|
|
|
|
|
336 2 PWM0_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
337 2 PWM0C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
338 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter0_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
339 2 else PWM15_Counter0_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
340 2 }
|
|
|
|
|
|
341 1
|
|
|
|
|
|
342 1 if(PWM_id == PWM1)
|
|
|
|
|
|
343 1 {
|
|
|
|
|
|
344 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM1_Enable(); //ʹ<><CAB9>PWM1
|
|
|
|
|
|
345 2 else PWM15_PWM1_Disable(); //<2F>ر<EFBFBD>PWM1
|
|
|
|
|
|
346 2 PWM1_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
347 2 PWM1C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
348 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter1_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
349 2 else PWM15_Counter1_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
350 2 }
|
|
|
|
|
|
351 1
|
|
|
|
|
|
352 1 if(PWM_id == PWM2)
|
|
|
|
|
|
353 1 {
|
|
|
|
|
|
354 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM2_Enable(); //ʹ<><CAB9>PWM2
|
|
|
|
|
|
355 2 else PWM15_PWM2_Disable(); //<2F>ر<EFBFBD>PWM2
|
|
|
|
|
|
356 2 PWM2_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
357 2 PWM2C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
358 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter2_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
359 2 else PWM15_Counter2_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
360 2 }
|
|
|
|
|
|
361 1
|
|
|
|
|
|
362 1 if(PWM_id == PWM3)
|
|
|
|
|
|
363 1 {
|
|
|
|
|
|
364 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM3_Enable(); //ʹ<><CAB9>PWM3
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 7
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
365 2 else PWM15_PWM3_Disable(); //<2F>ر<EFBFBD>PWM3
|
|
|
|
|
|
366 2 PWM3_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
367 2 PWM3C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
368 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter3_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
369 2 else PWM15_Counter3_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
370 2 }
|
|
|
|
|
|
371 1
|
|
|
|
|
|
372 1 if(PWM_id == PWM4)
|
|
|
|
|
|
373 1 {
|
|
|
|
|
|
374 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM4_Enable(); //ʹ<><CAB9>PWM4
|
|
|
|
|
|
375 2 else PWM15_PWM4_Disable(); //<2F>ر<EFBFBD>PWM4
|
|
|
|
|
|
376 2 PWM4_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
377 2 PWM4C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
378 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter4_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
379 2 else PWM15_Counter4_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
380 2 }
|
|
|
|
|
|
381 1
|
|
|
|
|
|
382 1 if(PWM_id == PWM5)
|
|
|
|
|
|
383 1 {
|
|
|
|
|
|
384 2 if(PWMx->PWM_Enable == ENABLE) PWM15_PWM5_Enable(); //ʹ<><CAB9>PWM5
|
|
|
|
|
|
385 2 else PWM15_PWM5_Disable(); //<2F>ر<EFBFBD>PWM5
|
|
|
|
|
|
386 2 PWM5_PS_Set(PWMx->PWM_Clock_PS); //ϵͳʱ<CDB3>ӷ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>, 0~15
|
|
|
|
|
|
387 2 PWM5C = PWMx->PWM_Period & 0x7fff;
|
|
|
|
|
|
388 2 if(PWMx->PWM_Counter == ENABLE) PWM15_Counter5_Enable(); //ʹ<>ܼ<EFBFBD><DCBC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
389 2 else PWM15_Counter5_Disable(); //<2F>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
390 2 }
|
|
|
|
|
|
391 1 EAXRAM(); /* MOVX A,@DPTR/MOVX @DPTR,Aָ<41><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>չRAM(XRAM) */
|
|
|
|
|
|
392 1 }
|
|
|
|
|
|
393
|
|
|
|
|
|
394
|
|
|
|
|
|
395 //========================================================================
|
|
|
|
|
|
396 // <20><><EFBFBD><EFBFBD>: void PWM0_Handler (void) interrupt PWM0_VECTOR
|
|
|
|
|
|
397 // <20><><EFBFBD><EFBFBD>: PWM0<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
398 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
399 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
400 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
401 //========================================================================
|
|
|
|
|
|
402 void PWM0_Handler (void) interrupt PWM0_VECTOR
|
|
|
|
|
|
403 {
|
|
|
|
|
|
404 1 char store;
|
|
|
|
|
|
405 1 store = P_SW2;
|
|
|
|
|
|
406 1 P_SW2 |= 0x80;
|
|
|
|
|
|
407 1
|
|
|
|
|
|
408 1 if(PWMCFG01 & 0x08) //PWM0<4D>ж<EFBFBD>
|
|
|
|
|
|
409 1 {
|
|
|
|
|
|
410 2 PWMCFG01 &= ~0x08; //<2F><>PWM0<4D>жϱ<D0B6>־
|
|
|
|
|
|
411 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
412 2 }
|
|
|
|
|
|
413 1 if(PWM0IF)
|
|
|
|
|
|
414 1 {
|
|
|
|
|
|
415 2 PWM0IF = 0;
|
|
|
|
|
|
416 2 P27 = ~P27;
|
|
|
|
|
|
417 2 }
|
|
|
|
|
|
418 1 P_SW2 = store;
|
|
|
|
|
|
419 1 }
|
|
|
|
|
|
420 //========================================================================
|
|
|
|
|
|
421 // <20><><EFBFBD><EFBFBD>: void PWM1_Handler (void) interrupt PWM1_VECTOR
|
|
|
|
|
|
422 // <20><><EFBFBD><EFBFBD>: PWM1<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
423 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
424 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
425 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
426 //========================================================================
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 8
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
427 void PWM1_Handler (void) interrupt PWM1_VECTOR
|
|
|
|
|
|
428 {
|
|
|
|
|
|
429 1 char store;
|
|
|
|
|
|
430 1 store = P_SW2;
|
|
|
|
|
|
431 1 P_SW2 |= 0x80;
|
|
|
|
|
|
432 1
|
|
|
|
|
|
433 1 if(PWMCFG01 & 0x80) //PWM1<4D>ж<EFBFBD>
|
|
|
|
|
|
434 1 {
|
|
|
|
|
|
435 2 PWMCFG01 &= ~0x80; //<2F><>PWM1<4D>жϱ<D0B6>־
|
|
|
|
|
|
436 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
437 2 }
|
|
|
|
|
|
438 1 if(PWM1IF)
|
|
|
|
|
|
439 1 {
|
|
|
|
|
|
440 2 PWM1IF = 0;
|
|
|
|
|
|
441 2 P26 = ~P26;
|
|
|
|
|
|
442 2 }
|
|
|
|
|
|
443 1 P_SW2 = store;
|
|
|
|
|
|
444 1 }
|
|
|
|
|
|
445 //========================================================================
|
|
|
|
|
|
446 // <20><><EFBFBD><EFBFBD>: void PWM2_Handler (void) interrupt PWM2_VECTOR
|
|
|
|
|
|
447 // <20><><EFBFBD><EFBFBD>: PWM2<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
448 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
449 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
450 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
451 //========================================================================
|
|
|
|
|
|
452 void PWM2_Handler (void) interrupt PWM2_VECTOR
|
|
|
|
|
|
453 {
|
|
|
|
|
|
454 1 char store;
|
|
|
|
|
|
455 1 store = P_SW2;
|
|
|
|
|
|
456 1 P_SW2 |= 0x80;
|
|
|
|
|
|
457 1
|
|
|
|
|
|
458 1 if(PWMCFG23 & 0x08) //PWM2<4D>ж<EFBFBD>
|
|
|
|
|
|
459 1 {
|
|
|
|
|
|
460 2 PWMCFG23 &= ~0x08; //<2F><>PWM2<4D>жϱ<D0B6>־
|
|
|
|
|
|
461 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
462 2 }
|
|
|
|
|
|
463 1 if(PWM2IF)
|
|
|
|
|
|
464 1 {
|
|
|
|
|
|
465 2 PWM2IF = 0;
|
|
|
|
|
|
466 2 P25 = ~P25;
|
|
|
|
|
|
467 2 }
|
|
|
|
|
|
468 1 P_SW2 = store;
|
|
|
|
|
|
469 1 }
|
|
|
|
|
|
470 //========================================================================
|
|
|
|
|
|
471 // <20><><EFBFBD><EFBFBD>: void PWM3_Handler (void) interrupt PWM3_VECTOR
|
|
|
|
|
|
472 // <20><><EFBFBD><EFBFBD>: PWM3<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
473 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
474 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
475 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
476 //========================================================================
|
|
|
|
|
|
477 void PWM3_Handler (void) interrupt PWM3_VECTOR
|
|
|
|
|
|
478 {
|
|
|
|
|
|
479 1 char store;
|
|
|
|
|
|
480 1 store = P_SW2;
|
|
|
|
|
|
481 1 P_SW2 |= 0x80;
|
|
|
|
|
|
482 1
|
|
|
|
|
|
483 1 if(PWMCFG23 & 0x80) //PWM3<4D>ж<EFBFBD>
|
|
|
|
|
|
484 1 {
|
|
|
|
|
|
485 2 PWMCFG23 &= ~0x80; //<2F><>PWM3<4D>жϱ<D0B6>־
|
|
|
|
|
|
486 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
487 2 }
|
|
|
|
|
|
488 1 if(PWM3IF)
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 PWM15BIT 12/16/2025 16:53:47 PAGE 9
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
489 1 {
|
|
|
|
|
|
490 2 PWM3IF = 0;
|
|
|
|
|
|
491 2 P24 = ~P24;
|
|
|
|
|
|
492 2 }
|
|
|
|
|
|
493 1 P_SW2 = store;
|
|
|
|
|
|
494 1 }
|
|
|
|
|
|
495 //========================================================================
|
|
|
|
|
|
496 // <20><><EFBFBD><EFBFBD>: void PWM4_Handler (void) interrupt PWM4_VECTOR
|
|
|
|
|
|
497 // <20><><EFBFBD><EFBFBD>: PWM4<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
498 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
499 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
500 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
501 //========================================================================
|
|
|
|
|
|
502 void PWM4_Handler (void) interrupt PWM4_VECTOR
|
|
|
|
|
|
503 {
|
|
|
|
|
|
504 1 char store;
|
|
|
|
|
|
505 1 store = P_SW2;
|
|
|
|
|
|
506 1 P_SW2 |= 0x80;
|
|
|
|
|
|
507 1
|
|
|
|
|
|
508 1 if(PWMCFG45 & 0x08) //PWM4<4D>ж<EFBFBD>
|
|
|
|
|
|
509 1 {
|
|
|
|
|
|
510 2 PWMCFG45 &= ~0x08; //<2F><>PWM4<4D>жϱ<D0B6>־
|
|
|
|
|
|
511 2 // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
512 2 }
|
|
|
|
|
|
513 1 if(PWM4IF)
|
|
|
|
|
|
514 1 {
|
|
|
|
|
|
515 2 PWM4IF = 0;
|
|
|
|
|
|
516 2 P23 = ~P23;
|
|
|
|
|
|
517 2 }
|
|
|
|
|
|
518 1 P_SW2 = store;
|
|
|
|
|
|
519 1 }
|
|
|
|
|
|
520 //========================================================================
|
|
|
|
|
|
521 // <20><><EFBFBD><EFBFBD>: void PWM5_Handler (void) interrupt PWM5_VECTOR
|
|
|
|
|
|
522 // <20><><EFBFBD><EFBFBD>: PWM5<4D>жϴ<D0B6><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
523 // <20><><EFBFBD><EFBFBD>: None
|
|
|
|
|
|
524 // <20><><EFBFBD><EFBFBD>: none.
|
|
|
|
|
|
525 // <20>汾: V1.0, 2020-10-13
|
|
|
|
|
|
526 //========================================================================
|
|
|
|
|
|
527 //void PWM5_Handler (void) interrupt PWM5_VECTOR //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD><C5B3><EFBFBD>31<33><31><EFBFBD>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
-<2D><><EFBFBD>
|
|
|
|
|
|
528 //{
|
|
|
|
|
|
529 // if(PWMCFG45 & 0x80) //PWM5<4D>ж<EFBFBD>
|
|
|
|
|
|
530 // {
|
|
|
|
|
|
531 // PWMCFG45 &= ~0x80; //<2F><>PWM5<4D>жϱ<D0B6>־
|
|
|
|
|
|
532 // // TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
533 // }
|
|
|
|
|
|
534 //}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
|
|
CODE SIZE = 1058 ----
|
|
|
|
|
|
CONSTANT SIZE = 384 ----
|
|
|
|
|
|
XDATA SIZE = ---- ----
|
|
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
|
|
DATA SIZE = ---- 6
|
|
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
|
|
BIT SIZE = ---- ----
|
|
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|