-
-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathsci_f.hpp
59 lines (54 loc) · 2.86 KB
/
sci_f.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#pragma once
//=========================================================================//
/*! @file
@brief Serial Communications Interface f / シリアルコミュニケーションインタフェース f
@author 平松邦仁 ([email protected])
@copyright Copyright (C) 2022, 2024 Kunihito Hiramatsu @n
Released under the MIT license @n
https://github.com/hirakuni45/RX/blob/master/LICENSE
*/
//=========================================================================//
#include "RX600/sci_e.hpp"
namespace device {
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
/*!
@brief SCIf class
@param[in] base ベース・アドレス
@param[in] per ペリフェラル型
@param[in] txi 送信割り込みベクター
@param[in] rxi 受信割り込みベクター
@param[in] tei 送信終了割り込みベクター
@param[in] eri 受信エラー割り込みベクター
@param[in] pclk PCLK 周波数
*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
template <uint32_t base, peripheral per, ICU::VECTOR txi, ICU::VECTOR rxi, ICU::VECTOR tei, ICU::VECTOR eri>
struct scif_t : public sci_ce_t<base>, sci_ext_t<base> {
static constexpr auto PERIPHERAL = per; ///< ペリフェラル型
static constexpr auto TXI = txi; ///< 受信割り込みベクター
static constexpr auto RXI = rxi; ///< 送信割り込みベクター
static constexpr auto TEI = tei; ///< 送信終了割り込みベクター
static constexpr auto ERI = eri; ///< 受信エラー割り込みベクター
static constexpr auto PCLK = clock_profile::PCLKB; ///< PCLK 周波数
//ボーレート微調整
static constexpr bool SEMR_BRME = false; ///< SEMR.BRME が利用可能な場合「true」
// ボーレート倍速
static constexpr bool SEMR_BGDM = false; ///< SEMR.BGDM が利用可能な場合「true」
// ノイズフィルタ
static constexpr bool SEMR_NFEN = true; ///< SEMR.NFEN が利用可能な場合「true」
// 調歩同期基本クロックセレクト拡張
static constexpr bool SEMR_ABCSE = false; ///< SEMR.ABCSE が利用可能な場合「true」
// 受信データフル
static constexpr bool SSR_RDRF = false; ///< SSR.RDRF が利用可能な場合「true」
// 簡易 I2C 機能の有無
static constexpr bool I2C_SUB = true; ///< 簡易 I2C が利用可能な場合「true」
// 簡易 SPI 機能の有無
static constexpr bool SPI_SUB = true; ///< 簡易 SPI が利用可能な場合「true」
// FIFO 機能の有無
static constexpr bool FIFO_FUNC = false; ///< FIFO バッファ機能が有効な場合「true」
};
#if defined(SIG_RX110) || defined(SIG_RX111) || defined(SIG_RX113) || defined(SIG_RX220)
typedef scif_t<0x0008'B300, peripheral::SCI12, ICU::VECTOR::TXI12, ICU::VECTOR::RXI12,
ICU::VECTOR::TEI12, ICU::VECTOR::ERI12> SCI12;
#endif
}