Files
100_STC_PWM/Listings/main.lst

124 lines
5.3 KiB
Plaintext
Raw Permalink Normal View History

C251 COMPILER V5.60.0, main 01/04/26 14:04:27 PAGE 1
C251 COMPILER V5.60.0, COMPILATION OF MODULE main
OBJECT MODULE PLACED IN .\Objects\main.obj
COMPILER INVOKED BY: C:\Keil_v5\C251\BIN\C251.EXE main.c INTR2 BROWSE DEBUG PRINT(.\Listings\main.lst) TABS(2) OBJECT(.\
-Objects\main.obj)
stmt level source
1 #include "stc32g.h"
2 #include "intrins.h"
3
4 #define MAIN_Fosc 24000000L // <20><>ʱ<EFBFBD><CAB1>24MHz
5 typedef unsigned char u8;
6 typedef unsigned int u16;
7 typedef unsigned long u32;
8
9 /**************************** <20>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD> 400Hz PWM ****************************/
10 //#define PWM_FREQ 400 // Ŀ<><C4BF>Ƶ<EFBFBD><C6B5>
11 //#define PERIOD 59999 // 24MHz<48><7A> 400Hz <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>ֵ
12 //#define DUTY 18000 // 30%ռ<>ձ<EFBFBD> (PERIOD/2)
13
14 /**************************** <20><>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>50Hz / 30%ռ<>ձ<EFBFBD> ****************************/
15 #define PWM_FREQ 50
16 #define PSC_VAL 239 // Ԥ<><D4A4>Ƶֵ<C6B5><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>16λ<36><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
17 #define PERIOD 1999 // <20><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>16λ<36>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ65535<33><35><EFBFBD>Ϲ
18 #define DUTY 600 // 30%ռ<>ձ<EFBFBD> (1999*0.3=600)
19
20 /**************************** <20>ٷ<EFBFBD><D9B7><EFBFBD><EAB6A8> <20><><EFBFBD><EFBFBD> ****************************/
21 #define PWM1_0 0x00 //P:P1.0 N:P1.1
22 #define PWM1_1 0x01 //P:P2.0 N:P2.1
23 #define PWM1_2 0x02 //P:P6.0 N:P6.1 ? <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
24 #define ENO1P 0x01
25
26 /*****************************************************************************/
27 void UpdatePwm(void);
28
29 /******************** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **************************/
30 void main(void)
31 {
32 1 WTST = 0;
33 1 EAXFR = 1; // <20><>չ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
34 1 CKCON = 0;
35 1
36 1 // IO<49>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
37 1 P0M1 = 0x00; P0M0 = 0x00;
38 1 P1M1 = 0x00; P1M0 = 0x00;
39 1 P2M1 = 0x00; P2M0 = 0x00;
40 1 P3M1 = 0x00; P3M0 = 0x00;
41 1 P4M1 = 0x00; P4M0 = 0x00;
42 1 P5M1 = 0x00; P5M0 = 0x00;
43 1 P6M1 = 0x00; P6M0 = 0x00;
44 1 P7M1 = 0x00; P7M0 = 0x00;
45 1
46 1 // ===================== PWM Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =====================
47 1 PWMA_ENO = 0x00;
48 1 PWMA_ENO |= ENO1P; // ʹ<><CAB9>PWM1ͨ<31><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
49 1
50 1 PWMA_CCER1 = 0x00;
51 1 PWMA_CCMR1 = 0x68; // PWMģʽ1<CABD><31><EFBFBD><EFBFBD>
52 1 PWMA_CCER1 = 0x01; // <20>ߵ<EFBFBD>ƽ<EFBFBD><C6BD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
53 1
54 1 PWMA_PS = 0x00;
55 1 PWMA_PS |= PWM1_2; // ? ѡ<><D1A1>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>P6.0 <20><><EFBFBD><EFBFBD>
56 1
57 1 // ========== <20><><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>֮ǰȱʧ<C8B1><CAA7><EFBFBD><EFBFBD> ==========
58 1 PWMA_PSCRH = (u8)(PSC_VAL >> 8);
C251 COMPILER V5.60.0, main 01/04/26 14:04:27 PAGE 2
59 1 PWMA_PSCRL = (u8)PSC_VAL;
60 1
61 1 UpdatePwm(); // <20><><EFBFBD><EFBFBD>400Hz/50%ռ<>ձȲ<D5B1><C8B2><EFBFBD>
62 1
63 1 PWMA_BKR = 0x80; // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>
64 1 PWMA_CR1 = 0x81; // <20>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD>رյ<D8B1><D5B5><EFBFBD><EFBFBD><EFBFBD>ģʽ <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PWM
65 1
66 1 EA = 1; // <20><><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>
67 1
68 1 while (1)
69 1 {
70 2 // <20><><EFBFBD><EFBFBD><EFBFBD>κβ<CEBA><CEB2><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>400Hz PWM
71 2 }
72 1 }
73
74 //========================================================================
75 // <20><><EFBFBD><EFBFBD>: UpdatePwm(void)
76 // <20><><EFBFBD><EFBFBD>: <20>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD> 400Hz + 50%ռ<>ձ<EFBFBD>
77 //========================================================================
78 void UpdatePwm(void)
79 {
80 1 // <20>̶<EFBFBD><CCB6><EFBFBD><EFBFBD>ڣ<EFBFBD>59999 <20><> 400Hz
81 1 PWMA_ARRH = (u8)(PERIOD >> 8);
82 1 PWMA_ARRL = (u8)PERIOD;
83 1
84 1 // <20>̶<EFBFBD>ռ<EFBFBD>ձȣ<D5B1>29999 <20><> 50%
85 1 PWMA_CCR1H = (u8)(DUTY >> 8);
86 1 PWMA_CCR1L = (u8)DUTY;
87 1 }
Module Information Static Overlayable
------------------------------------------------
code size = 225 ------
ecode size = ------ ------
data size = ------ ------
idata size = ------ ------
pdata size = ------ ------
xdata size = ------ ------
xdata-const size = ------ ------
edata size = ------ ------
bit size = ------ ------
ebit size = ------ ------
bitaddressable size = ------ ------
ebitaddressable size = ------ ------
far data size = ------ ------
huge data size = ------ ------
const size = 2 ------
hconst size = ------ ------
End of Module Information.
C251 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)