8051-ELL库  beta 1.1.6
8051-ELL library API Document Center
STC8x_PCA.h
浏览该文件的文档.
1 /*-----------------------------------------------------------------------
2 | FILE DESCRIPTION |
3 -----------------------------------------------------------------------*/
4 /*----------------------------------------------------------------------
5  - File name : STC8x_PCA.h
6  - Author : zeweni
7  - Update date : 2020.04.27
8  - Copyright(C) : 2020-2021 zeweni. All rights reserved.
9 -----------------------------------------------------------------------*/
10 /*------------------------------------------------------------------------
11 | COPYRIGHT NOTICE |
12 ------------------------------------------------------------------------*/
13 /*
14  * Copyright (C) 2021, zeweni (17870070675@163.com)
15 
16  * This file is part of 8051 ELL low-layer libraries.
17 
18  * 8051 ELL low-layer libraries is free software: you can redistribute
19  * it and/or modify it under the terms of the Apache-2.0 License.
20 
21  * 8051 ELL low-layer libraries is distributed in the hope that it will
22  * be useful,but WITHOUT ANY WARRANTY; without even the implied warranty
23  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  * Apache-2.0 License for more details.
25 
26  * You should have received a copy of the Apache-2.0 License.8051 ELL
27  * low-layer libraries. If not, see <http://www.apache.org/licenses/>.
28 **/
29 /*-----------------------------------------------------------------------
30 | INCLUDES |
31 -----------------------------------------------------------------------*/
32 #ifndef __STC8x_PCA_H_
33 #define __STC8x_PCA_H_
34 
35 /*--------------------------------------------------------
36 | @Description: ELL library core |
37 --------------------------------------------------------*/
38 #include "ELL_CORE.h"
39 
40 /*--------------------------------------------------------
41 | @Description: STC8x MCU Register |
42 --------------------------------------------------------*/
43 
44 #if (PER_LIB_MCU_MUODEL == STC8Ax)
45  #include "STC8Ax_REG.h"
46 #elif (PER_LIB_MCU_MUODEL == STC8Cx)
47  #include "STC8Cx_REG.h"
48 #elif (PER_LIB_MCU_MUODEL == STC8Fx)
49  #include "STC8Fx_REG.h"
50 #elif (PER_LIB_MCU_MUODEL == STC8Gx)
51  #include "STC8Gx_REG.h"
52 #elif (PER_LIB_MCU_MUODEL == STC8Hx)
53  #include "STC8Hx_REG.h"
54 #endif
55 
56 /*-----------------------------------------------------------------------
57 | DATA |
58 -----------------------------------------------------------------------*/
59 
60 
61 #ifndef PER_LIB_MCU_MUODEL
64  #define PER_LIB_MCU_MUODEL STC8Ax
65 #endif
66 
67 
68 #ifndef PER_LIB_PCA_CTRL
71  #define PER_LIB_PCA_CTRL 1
72 #endif
73 
74 
75 #ifndef PER_LIB_PCA_INIT_CTRL
78  #define PER_LIB_PCA_INIT_CTRL 1
79 #endif
80 
81 
82 #ifndef PER_LIB_PCA_NVIC_CTRL
85  #define PER_LIB_PCA_NVIC_CTRL 1
86 #endif
87 
88 
89 #ifndef PER_LIB_PCA_WORK_CTRL
92  #define PER_LIB_PCA_WORK_CTRL 1
93 #endif
94 
95 
100 typedef enum
101 {
102  PCA_TYPE_CAP = 0X00,
103  PCA_TYPE_PWM = 0x42,
104  PCA_TYPE_TIM = 0x48,
105  PCA_TYPE_POP = 0x4C
107 
108 
113 typedef enum
114 {
117  PCA_CAP_Mode_Edge = 0x03
119 
120 
125 typedef enum
126 {
128  PCA_SCLK_DIV_2 = 0x02,
129  PCA_TIMER0 = 0x04,
130  PCA_ECI = 0x06,
131  PCA_SCLK_DIV_1 = 0x08,
132  PCA_SCLK_DIV_4 = 0x0A,
133  PCA_SCLK_DIV_6 = 0x0C,
134  PCA_SCLK_DIV_8 = 0x0E
136 
137 
142 typedef enum
143 {
144  PCA_PWM_8Bits = 0x00,
145  PCA_PWM_7Bits = 0x01,
146  PCA_PWM_6Bits = 0x02,
147  PCA_PWM_10Bits = 0x03
149 
150 
155 typedef enum
156 {
157  PCA_CAPTri_Null = 0x00,
159  PCA_CAPTri_Falling = 0x10,
161  PCA_CAPTri_Rising = 0x20,
163  PCA_CAPTri_Edge = 0x30
166 
167 /*-----------------------------------------------------------------------
168 | API FUNCTION |
169 -----------------------------------------------------------------------*/
170 
171 #if ( PER_LIB_PCA_CTRL == 1)
172 
173  #if (PER_LIB_MCU_MUODEL == STC8Ax || PER_LIB_MCU_MUODEL == STC8Gx)
174 
175  #if ( PER_LIB_PCA_INIT_CTRL == 1)
176 
177 
187 
188 
198 
199 
209 
210 
220 
221 
222  #if (PER_LIB_MCU_MUODEL == STC8Ax)
223 
233 
234  #endif
235 
236 
245 
246 
255 
256 
265 
266 
267  #if (PER_LIB_MCU_MUODEL == STC8Ax)
268 
269 
278 
279  #endif
280 
281 
290 
291 
300 
301 
310 
311 
312  #if (PER_LIB_MCU_MUODEL == STC8Ax)
313 
322 
323  #endif
324 
325 
334 
335 
344 
345 
354 
355 
356  #if (PER_LIB_MCU_MUODEL == STC8Ax)
357 
366 
367  #endif
368 
369  #endif
370 
371 
372  #if ( PER_LIB_PCA_WORK_CTRL == 1 )
373 
381 
382 
390 
391 
399 
400 
401  #if (PER_LIB_MCU_MUODEL == STC8Ax)
402 
410 
411  #endif
412 
413 
418  #define PCA0_WORK_STOP() do{CCAPM0 = 0;}while(0)
419 
420 
425  #define PCA1_WORK_STOP() do{CCAPM1 = 0;}while(0)
426 
427 
432  #define PCA2_WORK_STOP() do{CCAPM2 = 0;}while(0)
433 
434 
435  #if (PER_LIB_MCU_MUODEL == STC8Ax)
436 
441  #define PCA3_WORK_STOP() do{CCAPM3 = 0;}while(0)
442 
443  #endif
444 
445 
452  #define PCA0_PWM_6BITS_CTRL(duty) \
453  do{ \
454  CCAPM0 = PCA_TYPE_PWM; \
455  PCA_PWM0 = (PCA_PWM0 & 0x3F)|(0x02 << 6); \
456  PCA_PWM0 = (PCA_PWM0 & 0XFE) | ((duty & 0x40) >> 6); \
457  PCA_PWM0 = (PCA_PWM0 & 0XFD) | ((duty & 0x40) >> 5); \
458  CCAP0L = (uint8_t)(duty & 0x003F); \
459  CCAP0H = (uint8_t)(duty & 0x003F); \
460  }while(0)
461 
462 
469  #define PCA0_PWM_7BITS_CTRL(duty) \
470  do{ \
471  CCAPM0 = PCA_TYPE_PWM; \
472  PCA_PWM0 = (PCA_PWM0 & 0x3F)|(0x01 << 6); \
473  PCA_PWM0 = (PCA_PWM0 & 0XFE) | ((duty & 0x80) >> 7); \
474  PCA_PWM0 = (PCA_PWM0 & 0XFD) | ((duty & 0x80) >> 6); \
475  CCAP0L = (uint8_t)(duty & 0x007F); \
476  CCAP0H = (uint8_t)(duty & 0x007F); \
477  }while(0)
478 
479 
486  #define PCA0_PWM_8BITS_CTRL(duty) \
487  do{ \
488  CCAPM0 = PCA_TYPE_PWM; \
489  PCA_PWM0 = (PCA_PWM0 & 0x3F)|(0x00 << 6); \
490  PCA_PWM0 = (PCA_PWM0 & 0XFE) | ((duty & 0x100) >> 8); \
491  PCA_PWM0 = (PCA_PWM0 & 0XFD) | ((duty & 0x100) >> 7); \
492  CCAP0L = (uint8_t)duty; \
493  CCAP0H = (uint8_t)duty; \
494  }while(0)
495 
496 
503  #define PCA0_PWM_10BITS_CTRL(duty) \
504  do{ \
505  CCAPM0 = PCA_TYPE_PWM; \
506  PCA_PWM0 = (PCA_PWM0 & 0x3F)|(0x03 << 6); \
507  PCA_PWM0 = (PCA_PWM0 & 0XFE) | ((duty & 0x400) >> 10); \
508  PCA_PWM0 = (PCA_PWM0 & 0XFD) | ((duty & 0x400) >> 9); \
509  PCA_PWM0 = (PCA_PWM0 & 0XF3) | ((duty & 0x300) >> 6); \
510  PCA_PWM0 = (PCA_PWM0 & 0XCF) | ((duty & 0x300) >> 4); \
511  CCAP0L = (uint8_t)duty; \
512  CCAP0H = (uint8_t)duty; \
513  } while (0)
514 
515 
522  #define PCA1_PWM_6BITS_CTRL(duty) \
523  do{ \
524  CCAPM1 = PCA_TYPE_PWM; \
525  PCA_PWM1 = (PCA_PWM1 & 0x3F)|(0x02 << 6); \
526  PCA_PWM1 = (PCA_PWM1 & 0XFE) | ((duty & 0x40) >> 6); \
527  PCA_PWM1 = (PCA_PWM1 & 0XFD) | ((duty & 0x40) >> 5); \
528  CCAP1L = (uint8_t)(duty & 0x003F); \
529  CCAP1H = (uint8_t)(duty & 0x003F); \
530  }while(0)
531 
532 
539  #define PCA1_PWM_7BITS_CTRL(duty) \
540  do{ \
541  CCAPM1 = PCA_TYPE_PWM; \
542  PCA_PWM1 = (PCA_PWM1 & 0x3F)|(0x01 << 6); \
543  PCA_PWM1 = (PCA_PWM1 & 0XFE) | ((duty & 0x80) >> 7); \
544  PCA_PWM1 = (PCA_PWM1 & 0XFD) | ((duty & 0x80) >> 6); \
545  CCAP1L = (uint8_t)(duty & 0x007F); \
546  CCAP1H = (uint8_t)(duty & 0x007F); \
547  }while(0)
548 
549 
556  #define PCA1_PWM_8BITS_CTRL(duty) \
557  do{ \
558  CCAPM1 = PCA_TYPE_PWM; \
559  PCA_PWM1 = (PCA_PWM1 & 0x3F)|(0x00 << 6); \
560  PCA_PWM1 = (PCA_PWM1 & 0XFE) | ((duty & 0x100) >> 8); \
561  PCA_PWM1 = (PCA_PWM1 & 0XFD) | ((duty & 0x100) >> 7); \
562  CCAP1L = (uint8_t)duty; \
563  CCAP1H = (uint8_t)duty; \
564  }while(0)
565 
566 
573  #define PCA1_PWM_10BITS_CTRL(duty) \
574  do{ \
575  CCAPM1 = PCA_TYPE_PWM; \
576  PCA_PWM1 = (PCA_PWM1 & 0x3F)|(0x03 << 6); \
577  PCA_PWM1 = (PCA_PWM1 & 0XFE) | ((duty & 0x400) >> 10); \
578  PCA_PWM1 = (PCA_PWM1 & 0XFD) | ((duty & 0x400) >> 9); \
579  PCA_PWM1 = (PCA_PWM1 & 0XF3) | ((duty & 0x300) >> 6); \
580  PCA_PWM1 = (PCA_PWM1 & 0XCF) | ((duty & 0x300) >> 4); \
581  CCAP1L = (uint8_t)duty; \
582  CCAP1H = (uint8_t)duty; \
583  }while(0)
584 
585 
592  #define PCA2_PWM_6BITS_CTRL(duty) \
593  do{ \
594  CCAPM2 = PCA_TYPE_PWM; \
595  PCA_PWM2 = (PCA_PWM2 & 0x3F)|(0x02 << 6); \
596  PCA_PWM2 = (PCA_PWM2 & 0XFE) | ((duty & 0x40) >> 6); \
597  PCA_PWM2 = (PCA_PWM2 & 0XFD) | ((duty & 0x40) >> 5); \
598  CCAP2L = (uint8_t)(duty & 0x003F); \
599  CCAP2H = (uint8_t)(duty & 0x003F); \
600  }while(0)
601 
602 
609  #define PCA2_PWM_7BITS_CTRL(duty) \
610  do{ \
611  CCAPM2 = PCA_TYPE_PWM; \
612  PCA_PWM2 = (PCA_PWM2 & 0x3F)|(0x01 << 6); \
613  PCA_PWM2 = (PCA_PWM2 & 0XFE) | ((duty & 0x80) >> 7); \
614  PCA_PWM2 = (PCA_PWM2 & 0XFD) | ((duty & 0x80) >> 6); \
615  CCAP2L = (uint8_t)(duty & 0x007F); \
616  CCAP2H = (uint8_t)(duty & 0x007F); \
617  }while(0)
618 
619 
626  #define PCA2_PWM_8BITS_CTRL(duty) \
627  do{ \
628  CCAPM2 = PCA_TYPE_PWM; \
629  PCA_PWM2 = (PCA_PWM2 & 0x3F)|(0x00 << 6); \
630  PCA_PWM2 = (PCA_PWM2 & 0XFE) | ((duty & 0x100) >> 8); \
631  PCA_PWM2 = (PCA_PWM2 & 0XFD) | ((duty & 0x100) >> 7); \
632  CCAP2L = (uint8_t)duty; \
633  CCAP2H = (uint8_t)duty; \
634  }while(0)
635 
636 
643  #define PCA2_PWM_10BITS_CTRL(duty) \
644  do{ \
645  CCAPM2 = PCA_TYPE_PWM; \
646  PCA_PWM2 = (PCA_PWM2 & 0x3F)|(0x03 << 6); \
647  PCA_PWM2 = (PCA_PWM2 & 0XFE) | ((duty & 0x400) >> 10); \
648  PCA_PWM2 = (PCA_PWM2 & 0XFD) | ((duty & 0x400) >> 9); \
649  PCA_PWM2 = (PCA_PWM2 & 0XF3) | ((duty & 0x300) >> 6); \
650  PCA_PWM2 = (PCA_PWM2 & 0XCF) | ((duty & 0x300) >> 4); \
651  CCAP2L = (uint8_t)duty; \
652  CCAP2H = (uint8_t)duty; \
653  }while(0)
654 
655 
656  #if (PER_LIB_MCU_MUODEL == STC8Ax)
657 
664  #define PCA3_PWM_6BITS_CTRL(duty) \
665  do{ \
666  CCAPM3 = PCA_TYPE_PWM; \
667  PCA_PWM3 = (PCA_PWM3 & 0x3F)|(0x02 << 6); \
668  PCA_PWM3 = (PCA_PWM3 & 0XFE) | ((duty & 0x40) >> 6); \
669  PCA_PWM3 = (PCA_PWM3 & 0XFD) | ((duty & 0x40) >> 5); \
670  CCAP3L = (uint8_t)(duty & 0x003F); \
671  CCAP3H = (uint8_t)(duty & 0x003F); \
672  }while(0)
673 
674 
681  #define PCA3_PWM_7BITS_CTRL(duty) \
682  do{ \
683  CCAPM3 = PCA_TYPE_PWM; \
684  PCA_PWM3 = (PCA_PWM3 & 0x3F)|(0x01 << 6); \
685  PCA_PWM3 = (PCA_PWM3 & 0XFE) | ((duty & 0x80) >> 7); \
686  PCA_PWM3 = (PCA_PWM3 & 0XFD) | ((duty & 0x80) >> 6); \
687  CCAP3L = (uint8_t)(duty & 0x007F); \
688  CCAP3H = (uint8_t)(duty & 0x007F); \
689  }while(0)
690 
691 
698  #define PCA3_PWM_8BITS_CTRL(duty) \
699  do{ \
700  CCAPM3 = PCA_TYPE_PWM; \
701  PCA_PWM3 = (PCA_PWM3 & 0x3F)|(0x00 << 6); \
702  PCA_PWM3 = (PCA_PWM3 & 0XFE) | ((duty & 0x100) >> 8); \
703  PCA_PWM3 = (PCA_PWM3 & 0XFD) | ((duty & 0x100) >> 7); \
704  CCAP3L = (uint8_t)duty; \
705  CCAP3H = (uint8_t)duty; \
706  }while(0)
707 
708 
715  #define PCA3_PWM_10BITS_CTRL(duty) \
716  do{ \
717  CCAPM3 = PCA_TYPE_PWM; \
718  PCA_PWM3 = (PCA_PWM3 & 0x3F)|(0x03 << 6); \
719  PCA_PWM3 = (PCA_PWM3 & 0XFE) | ((duty & 0x400) >> 10); \
720  PCA_PWM3 = (PCA_PWM3 & 0XFD) | ((duty & 0x400) >> 9); \
721  PCA_PWM3 = (PCA_PWM3 & 0XF3) | ((duty & 0x300) >> 6); \
722  PCA_PWM3 = (PCA_PWM3 & 0XCF) | ((duty & 0x300) >> 4); \
723  CCAP3L = (uint8_t)duty; \
724  CCAP3H = (uint8_t)duty; \
725  }while(0)
726 
727  #endif
728 
729 
738 
739  #endif
740 
741  #if ( PER_LIB_PCA_INIT_CTRL == 1)
742 
752 
753 
762 
763 
772 
773 
782 
783 
784  #if (PER_LIB_MCU_MUODEL == STC8Ax)
785 
786 
795 
796  #endif
797 
807 
808 
818 
819 
829 
830 
831 
832  #if (PER_LIB_MCU_MUODEL == STC8Ax)
833 
834 
844 
845  #endif
846 
852  #define PCA_CNT_GET_FLAG() (CF)
853 
854 
859  #define PCA_CNT_CLEAR_FLAG() do{CF = 0;}while(0)
860 
861 
867  #define PCA0_GET_FLAG() (CCF0)
868 
869 
875  #define PCA1_GET_FLAG() (CCF1)
876 
877 
883  #define PCA2_GET_FLAG() (CCF2)
884 
885 
886  #if (PER_LIB_MCU_MUODEL == STC8Ax)
887 
893  #define PCA3_GET_FLAG() (CCF3)
894 
895  #endif
896 
901  #define PCA0_CLEAR_FLAG() do{CCF0 = 0;}while(0)
902 
903 
908  #define PCA1_CLEAR_FLAG() do{CCF1 = 0;}while(0)
909 
910 
915  #define PCA2_CLEAR_FLAG() do{CCF2 = 0;}while(0)
916 
917 
918  #if (PER_LIB_MCU_MUODEL == STC8Ax)
919 
920 
925  #define PCA3_CLEAR_FLAG() do{CCF3 = 0;}while(0)
926 
927  #endif
928 
934  #define NVIC_PCA_CNT_CTRL(run) \
935  do{ \
936  CMOD = (CMOD & 0xFE) | run; \
937  }while(0)
938 
939 
945  #define NVIC_PCA_PRI(pri) \
946  do{ \
947  IPH = (IPH & 0x7F) | ((pri & 0x02) << 6); \
948  IP = (IP & 0x7F) | ((pri & 0x01) << 7); \
949  }while(0)
950 
951 
957  #define NVIC_PCA0_CTRL(run) \
958  do{ \
959  CCAPM0 = (CCAPM0 & 0xFE) | (run); \
960  }while(0)
961 
962 
968  #define NVIC_PCA1_CTRL(run) \
969  do{ \
970  CCAPM1 = (CCAPM1 & 0xFE) | (run); \
971  }while(0)
972 
973 
979  #define NVIC_PCA2_CTRL(run) \
980  do{ \
981  CCAPM2 = (CCAPM2 & 0xFE) | (run); \
982  }while(0)
983 
984  #if (PER_LIB_MCU_MUODEL == STC8Ax)
985 
991  #define NVIC_PCA3_CTRL(run) \
992  do{ \
993  CCAPM3 = (CCAPM3 & 0xFE) | (run); \
994  }while(0)
995 
996  #endif
997 
998  #endif
999 
1000  #endif
1001 
1002 #endif
1003 /*-----------------------------------------------------------------------
1004 | END OF FLIE. (C) COPYRIGHT zeweni |
1005 -----------------------------------------------------------------------*/
1006 #endif
NVICPri_Type
Definition: ELL_CORE.h:99
BOOL
Definition: ELL_CORE.h:50
FSCSTATE
Definition: ELL_CORE.h:65
GPIOSWPort_Type
Definition: ELL_CORE.h:81
unsigned int uint16_t
Definition: ELL_TYPE.h:73
PCA_CAPMode_Type
PCA做CAP时,触发模式枚举体。
Definition: STC8x_PCA.h:114
@ PCA_CAP_Mode_Rising
Definition: STC8x_PCA.h:116
@ PCA_CAP_Mode_Falling
Definition: STC8x_PCA.h:115
@ PCA_CAP_Mode_Edge
Definition: STC8x_PCA.h:117
PCACLKSrc_Type
PCA时钟源枚举体
Definition: STC8x_PCA.h:126
@ PCA_SCLK_DIV_1
Definition: STC8x_PCA.h:131
@ PCA_SCLK_DIV_6
Definition: STC8x_PCA.h:133
@ PCA_SCLK_DIV_8
Definition: STC8x_PCA.h:134
@ PCA_TIMER0
Definition: STC8x_PCA.h:129
@ PCA_SCLK_DIV_4
Definition: STC8x_PCA.h:132
@ PCA_SCLK_DIV_2
Definition: STC8x_PCA.h:128
@ PCA_SCLK_DIV_12
Definition: STC8x_PCA.h:127
@ PCA_ECI
Definition: STC8x_PCA.h:130
PCA_PWMBits_Type
PCA做PWM时,分辨率枚举体。
Definition: STC8x_PCA.h:143
@ PCA_PWM_6Bits
Definition: STC8x_PCA.h:146
@ PCA_PWM_10Bits
Definition: STC8x_PCA.h:147
@ PCA_PWM_7Bits
Definition: STC8x_PCA.h:145
@ PCA_PWM_8Bits
Definition: STC8x_PCA.h:144
FSCSTATE GPIO_PCA_SWPort(GPIOSWPort_Type port)
PCA切换复用IO函数。
FSCSTATE NVIC_PCA1_PWM_CAP_Init(PCA_CAPTri_Type triMode, BOOL run)
PCA1做PWM或CAP中断初始化函数。
void PCA3_TIM_POP_ReValue(void)
PCA3做TIMER或POP时,重载载计数器。
void PCA2_TIM_POP_ReValue(void)
PCA2做TIMER或POP时,重载载计数器。
FSCSTATE PCA3_POP_Init(uint16_t fre)
PCA3做POP初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA3_PWM_CAP_Init(PCA_CAPTri_Type triMode, BOOL run)
PCA3做PWM或CAP中断初始化函数。
FSCSTATE NVIC_PCA_CNT_Init(NVICPri_Type pri, BOOL run)
PCA计数器中断初始化函数。
void PCA0_TIM_POP_ReValue(void)
PCA0做TIMER或POP时,重载载计数器。
FSCSTATE NVIC_PCA1_TIM_POP_Init(BOOL run)
PCA1做TIMER或POP中断初始化函数。
FSCSTATE PCA1_POP_Init(uint16_t fre)
PCA1做POP初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA3_TIM_POP_Init(BOOL run)
PCA3做TIMER或POP中断初始化函数。
FSCSTATE PCA0_TIM_Init(uint16_t time)
PCA0做TIMER初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA2_CAP_Init(PCA_CAPMode_Type mode)
PCA2做CAP初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA_CNT_Init(PCACLKSrc_Type clkSrc, BOOL run)
PCA计数器初始化,必须放在所有PCA函数的后面。
FSCSTATE PCA2_PWM_Init(PCA_PWMBits_Type pwmBits, uint16_t duty)
PCA2做PWM初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA3_TIM_Init(uint16_t time)
PCA3做TIMER初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA0_POP_Init(uint16_t fre)
PCA0做POP初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA0_PWM_CAP_Init(PCA_CAPTri_Type triMode, BOOL run)
PCA0做PWM或CAP中断初始化函数。
void PCA1_TIM_POP_ReValue(void)
PCA1做TIMER或POP时,重载载计数器。
FSCSTATE PCA0_CAP_Init(PCA_CAPMode_Type mode)
PCA0做CAP初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA3_CAP_Init(PCA_CAPMode_Type mode)
PCA3做CAP初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA2_PWM_CAP_Init(PCA_CAPTri_Type triMode, BOOL run)
PCA2做PWM或CAP中断初始化函数。
FSCSTATE PCA2_TIM_Init(uint16_t time)
PCA2做TIMER初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA1_PWM_Init(PCA_PWMBits_Type pwmBits, uint16_t duty)
PCA1做PWM初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA0_TIM_POP_Init(BOOL run)
PCA0做TIMER或POP中断初始化函数。
PCAType_Type
PCA工作类型枚举体
Definition: STC8x_PCA.h:101
@ PCA_TYPE_TIM
Definition: STC8x_PCA.h:104
@ PCA_TYPE_POP
Definition: STC8x_PCA.h:105
@ PCA_TYPE_PWM
Definition: STC8x_PCA.h:103
@ PCA_TYPE_CAP
Definition: STC8x_PCA.h:102
FSCSTATE PCA2_POP_Init(uint16_t fre)
PCA2做POP初始化,必须放在PCA计数器初始化之前。
FSCSTATE NVIC_PCA2_TIM_POP_Init(BOOL run)
PCA2做TIMER或POP中断初始化函数。
FSCSTATE PCA1_TIM_Init(uint16_t time)
PCA1做TIMER初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA3_PWM_Init(PCA_PWMBits_Type pwmBits, uint16_t duty)
PCA3做PWM初始化,必须放在PCA计数器初始化之前。
FSCSTATE PCA1_CAP_Init(PCA_CAPMode_Type mode)
PCA1做CAP初始化,必须放在PCA计数器初始化之前。
PCA_CAPTri_Type
PCA做CAP时,触发中断方式枚举体。
Definition: STC8x_PCA.h:156
@ PCA_CAPTri_Falling
Definition: STC8x_PCA.h:159
@ PCA_CAPTri_Null
Definition: STC8x_PCA.h:157
@ PCA_CAPTri_Rising
Definition: STC8x_PCA.h:161
@ PCA_CAPTri_Edge
Definition: STC8x_PCA.h:163
FSCSTATE PCA0_PWM_Init(PCA_PWMBits_Type pwmBits, uint16_t duty)
PCA0做PWM初始化,必须放在PCA计数器初始化之前。