mFrame
載入中...
搜尋中...
無符合項目
CoreGeneralPort.h
1
7#ifndef MCXA153_B31BFF6B_C1BE_4E18_A7EE_2B374A8352B8
8#define MCXA153_B31BFF6B_C1BE_4E18_A7EE_2B374A8352B8
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 CoreGeneralPort;
25} // namespace mcxa153::core
26
27/* ***************************************************************************************
28 * Class/Interface/Struct/Enum
29 */
71 /* *************************************************************************************
72 * Enum - Select
73 */
74 public:
75 enum struct Select : unsigned char;
76
77 struct Descriptor {
82 uint32 vMask;
83 };
84
85 /* *************************************************************************************
86 * Variable
87 */
88 public:
91
94
96 const Descriptor* const vDescriptor;
97
98 /* *************************************************************************************
99 * override Method
100 */
101
102 /* *************************************************************************************
103 * Construct Method
104 */
105 public:
126
136 virtual ~CoreGeneralPort(void) override;
137
138 /* *************************************************************************************
139 * Operator Method
140 */
141
142 /* *************************************************************************************
143 * Override Method hal::Base
144 */
145 public:
161 virtual bool deinit(void) override;
162
178 virtual bool init(void) override;
179
191 virtual bool isInit(void) override;
192
193 /* *************************************************************************************
194 * Override Method hal::digital::GeneralPort
195 */
196 public:
210 virtual uint32 dir(uint32 port) override;
211
226 virtual hal::digital::GeneralPort& dir(uint32 port, uint32 value) override;
227
242 virtual hal::digital::GeneralPort& dirClear(uint32 port, uint32 mask) override;
243
258 virtual hal::digital::GeneralPort& dirSet(uint32 port, uint32 mask) override;
259
273 virtual uint32 pin(uint32 port) override;
274
289 virtual hal::digital::GeneralPort& pin(uint32 port, uint32 value) override;
290
305 virtual hal::digital::GeneralPort& pinClear(uint32 port, uint32 mask) override;
306
321 virtual hal::digital::GeneralPort& pinSet(uint32 port, uint32 mask) override;
322
337 virtual hal::digital::GeneralPort& pinToggle(uint32 port, uint32 mask) override;
338 /* *************************************************************************************
339 * Public Method
340 */
341
342 /* *************************************************************************************
343 * Protected Method
344 */
345
346 /* *************************************************************************************
347 * Private Method
348 */
349
350 /* *************************************************************************************
351 * Static Variable
352 */
353 public:
354 static constexpr const uint32 VALID_MASK[] = {
355 // GPIO0
356 ((1U << 0) | (1U << 1) | (1U << 2) | (1U << 3) | (1U << 6) | (1U << 16) |
357 (1U << 17)),
358 // GPIO1
359 ((1U << 0) | (1U << 1) | (1U << 2) | (1U << 3) | (1U << 4) | (1U << 5) | (1U << 6) |
360 (1U << 7) | (1U << 8) | (1U << 9) | (1U << 10) | (1U << 11) | (1U << 12) |
361 (1U << 13) | (1U << 29) | (1U << 30) | (1U << 31)),
362 // GPIO2
363 ((1U << 0) | (1U << 1) | (1U << 2) | (1U << 3) | (1U << 4) | (1U << 5) | (1U << 6) |
364 (1U << 7) | (1U << 12) | (1U << 13) | (1U << 16)),
365 // GPIO3
366 ((1U << 0) | (1U << 1) | (1U << 6) | (1U << 7) | (1U << 8) | (1U << 9) |
367 (1U << 10) | (1U << 11) | (1U << 12) | (1U << 13) | (1U << 14) | (1U << 15) |
368 (1U << 27) | (1U << 28) | (1U << 29) | (1U << 30) | (1U << 31))};
369
370 static constexpr const Descriptor DESCRIPTORS[] = {
371 // GPIO0
373 mcxa153::chip::reset::Control::GPIO0,
375 mcxa153::chip::reset::Control::PORT0,
376 VALID_MASK[0]},
377 // GPIO0
382 VALID_MASK[1]},
383
384 // GPIO0
389 VALID_MASK[2]},
390
391 // GPIO0
396 VALID_MASK[3]}};
397
398 /* *************************************************************************************
399 * Static Method
400 */
401 public:
402 static inline constexpr mcxa153::chip::port::Register* toPortRegister(Select select) {
403 return mcxa153::chip::port::PORT[static_cast<unsigned char>(select)];
404 }
405
406 static inline constexpr mcxa153::chip::gpio::Register* toRegister(Select select) {
407 return mcxa153::chip::gpio::GPIO[static_cast<unsigned char>(select)];
408 }
409
410 static inline constexpr const Descriptor* toDescriptor(Select select) {
411 return &DESCRIPTORS[static_cast<unsigned char>(select)];
412 }
413};
414
430enum struct mcxa153::core::CoreGeneralPort::Select : unsigned char {
431 GPIO0 = 0,
432 GPIO1 = 1,
433 GPIO2 = 2,
434 GPIO3 = 3
435};
436
437/* ***************************************************************************************
438 * End of file
439 */
440
441#endif /* MCXA153_B31BFF6B_C1BE_4E18_A7EE_2B374A8352B8 */
MCXA153 通用輸入/輸出 (General Purpose Input/Output) 控制器靜態工具類別
Definition chip/gpio/GPIO.h:139
MCXA153 通用GPIO埠控制器
Definition CoreGeneralPort.h:70
virtual bool isInit(void) override
檢查埠初始化狀態
virtual bool deinit(void) override
反初始化GPIO埠
virtual hal::digital::GeneralPort & dir(uint32 port, uint32 value) override
設定埠方向
mcxa153::chip::port::Register *const vBasePort
特定GPIO埠基底暫存器位址
Definition CoreGeneralPort.h:93
virtual uint32 dir(uint32 port) override
讀取埠方向設定
virtual ~CoreGeneralPort(void) override
解構通用GPIO埠物件
virtual hal::digital::GeneralPort & pinSet(uint32 port, uint32 mask) override
設定埠腳位狀態
mcxa153::chip::gpio::Register *const vBase
GPIO模組基底暫存器位址
Definition CoreGeneralPort.h:90
virtual hal::digital::GeneralPort & dirSet(uint32 port, uint32 mask) override
設定埠方向位元
virtual hal::digital::GeneralPort & dirClear(uint32 port, uint32 mask) override
清除埠方向位元
virtual hal::digital::GeneralPort & pinClear(uint32 port, uint32 mask) override
清除埠腳位狀態
virtual uint32 pin(uint32 port) override
讀取埠腳位狀態
CoreGeneralPort(Select select)
建構通用GPIO埠物件
virtual hal::digital::GeneralPort & pin(uint32 port, uint32 value) override
設定埠腳位狀態
virtual bool init(void) override
初始化GPIO埠
const Descriptor *const vDescriptor
GPIO埠描述結構指標
Definition CoreGeneralPort.h:96
virtual hal::digital::GeneralPort & pinToggle(uint32 port, uint32 mask) override
切換埠腳位狀態
Select
GPIO埠選擇枚舉
Definition CoreGeneralPort.h:430
物件基底類別
Definition Object.h:63
GateName
時鐘門控命名列舉
Definition GateName.h:58
Control
MCXA153 Peripheral Reset Control Identifiers.
Definition Control.h:144
@ GPIO1
GPIO 1 Reset Control.
@ PORT3
PORT 3 Reset Control.
@ PORT1
PORT 1 Reset Control.
@ GPIO2
GPIO 2 Reset Control.
@ GPIO3
GPIO 3 Reset Control.
@ PORT2
PORT 2 Reset Control.
Definition glikey/Mask.h:22
[Interface] 通用引腳埠。
Definition GeneralPort.h:41
GPIO 週邊暫存器存取層
Definition gpio/Register.h:45
PORT (Pin Multiplexing and Control) Peripheral Register Structure.
Definition port/Register.h:53
Definition CoreGeneralPort.h:77