mFrame
載入中...
搜尋中...
無符合項目
CorePulseWidth.h
1
7#ifndef MCXA153_2C777839_642E_455E_B7C5_25AAAAAF0857
8#define MCXA153_2C777839_642E_455E_B7C5_25AAAAAF0857
9
10/* ***************************************************************************************
11 * Include
12 */
13#include "mframe.h"
14
15//----------------------------------------------------------------------------------------
16#include "./CoreDescriptor.h"
17
18//----------------------------------------------------------------------------------------
19
20/* ***************************************************************************************
21 * Namespace
22 */
23namespace mcxa153::core {
24 class CorePulseWidth;
25} // namespace mcxa153::core
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
30
105 /* *************************************************************************************
106 * Class/Interface/Struct/Enum
107 */
108 public:
109 enum struct Select : unsigned char;
110 enum struct Channel : unsigned char;
111
112 /* *************************************************************************************
113 * Variable
114 */
115 public:
118
121
124
125 /* *************************************************************************************
126 * Abstract Method
127 */
128
129 /* *************************************************************************************
130 * Construct Method
131 */
132 public:
191 CorePulseWidth(Select select, Channel periodChannel);
192
249 virtual ~CorePulseWidth(void) override;
250
251 /* *************************************************************************************
252 * Operator Method
253 */
254
255 /* *************************************************************************************
256 * Override Method - hal::Base
257 */
258 public:
322 virtual bool deinit(void) override;
323
398 virtual bool init(void) override;
399
462 virtual bool isInit(void) override;
463
464 /* *************************************************************************************
465 * Override Method - hal::counter::PulseWidth
466 */
467 public:
546 virtual int setPeriod(float hz) override;
547
647 virtual bool getPeriod(float& resultHz) override;
648
732 virtual bool setPercent(int channel, float percent) override;
733
817 virtual bool getPercent(int channel, float& result) override;
818
915 virtual bool start(bool enable) override;
916
917 /* *************************************************************************************
918 * Public Method
919 */
920
921 /* *************************************************************************************
922 * Protected Method
923 */
924
925 /* *************************************************************************************
926 * Private Method
927 */
928 private:
929 uint32 getClockSource(void);
930 /* *************************************************************************************
931 * Static Variable
932 */
933 public:
934 static constexpr const mcxa153::core::CoreDescriptor DESCRIPTORS[] = {
935 // CTimer0
937 mcxa153::chip::reset::Control::CTIMER0,
941 // CTimer1
943 mcxa153::chip::reset::Control::CTIMER1,
947 // CTimer2
953
954 /* *************************************************************************************
955 * Static Method
956 */
957 public:
958 static inline constexpr mcxa153::chip::ctimer::Register* toRegister(Select select) {
959 return mcxa153::chip::ctimer::CTIMER[static_cast<uint8>(select)];
960 }
961
962 static inline constexpr const mcxa153::core::CoreDescriptor* toDescriptor(Select select) {
963 return &DESCRIPTORS[static_cast<uint8>(select)];
964 }
965};
966
1003enum struct mcxa153::core::CorePulseWidth::Select : unsigned char {
1004 CTIMER0 = 0,
1005 CTIMER1 = 1,
1006 CTIMER2 = 2
1007};
1008
1057enum struct mcxa153::core::CorePulseWidth::Channel : unsigned char {
1058 MAT0 = 0,
1059 MAT1 = 1,
1060 MAT2 = 2,
1061 MAT3 = 3
1062};
1063
1064/* ***************************************************************************************
1065 * End of file
1066 */
1067
1068#endif /* MCXA153_2C777839_642E_455E_B7C5_25AAAAAF0857 */
CTIMER外設暫存器類別
Definition CTIMER.h:60
@ IRQ_CTIMER0
CTimer0中斷服務
Definition CoreInterrupt.h:131
@ IRQ_CTIMER2
CTimer2中斷服務
Definition CoreInterrupt.h:133
@ IRQ_CTIMER1
CTimer1中斷服務
Definition CoreInterrupt.h:132
MCXA153 脈衝寬度調變 (PWM) 控制類別
Definition CorePulseWidth.h:104
virtual int setPeriod(float hz) override
設定 PWM 信號頻率
virtual bool isInit(void) override
檢查 PWM 控制器初始化狀態
virtual bool init(void) override
PWM 控制器硬體初始化
virtual bool getPeriod(float &resultHz) override
讀取 PWM 信號當前頻率
const Channel vPeriodChannel
PWM 週期控制通道
Definition CorePulseWidth.h:123
virtual ~CorePulseWidth(void) override
銷毀 CorePulseWidth PWM 控制物件
virtual bool setPercent(int channel, float percent) override
設定指定通道的 PWM 占空比
virtual bool start(bool enable) override
啟動或停止 PWM 輸出
Select
CTIMER 定時器選擇枚舉
Definition CorePulseWidth.h:1003
CorePulseWidth(Select select, Channel periodChannel)
建構 CorePulseWidth PWM 控制物件
mcxa153::chip::ctimer::Register *const vBase
CTIMER 硬體基礎位址指標
Definition CorePulseWidth.h:117
Channel
CTIMER 匹配通道選擇枚舉
Definition CorePulseWidth.h:1057
const mcxa153::core::CoreDescriptor *const vDescriptor
控制器描述物件指標
Definition CorePulseWidth.h:120
virtual bool getPercent(int channel, float &result) override
查詢指定通道的 PWM 占空比
virtual bool deinit(void) override
PWM 控制器硬體反初始化
物件基底類別
Definition Object.h:63
@ CTIMER2
Counter/Timer 2 Reset Control.
Definition glikey/Mask.h:22
PWM通道操作介面
Definition PulseWidth.h:66
CTIMER - Register Layout Typedef.
Definition ctimer/Register.h:34
Definition CoreDescriptor.h:31