⑥ QSPI
4.2.6.1 データ仕様
45 uint31_t size
qspi_erase ER QSPI_Handler* hqspi
uint31_t address uint31_t size
アドレス指定消去
qspi_erase_sector ER QSPI_Handler* hqspi uint31_t address
セクタ単位消去 qspi_direct_disable ER QSPI_Handler* hqspi DIRECT READ無効 qspi_direct_enable ER QSPI_Handler* hspi DIRECT READ有効 qspi_handler void QSPI_Handler* hspi QSPI割込みハンドラ関数
qspi_isr void intptr_t exinf QSPI割込みサービスルーチン
表 4.1.5.1.1 QSPIドライバ関数
46
4 dayselect uint31_t アラーム日付設定
5 subsecnd uint31_t アラームサブセコンド
6 callback (*)(void) アラームコールバック
表4.1.6.1.1 RTC_Alarm型
① alarm
アラームレジスタを指定する
定義 値 内容
RTC_ALARM_A RTC_CR_ALRAE アラームAレジスタを指定
RTC_ALARM_B RTC_CR_ALRBE アラームBレジスタを指定
表4.1.6.1.3 alarm設定値
② dayselect
垂直同期極性設定をする。
定義 値 内容
ALARMDAYSEL_DATE 0x00000000 月中の日を指定
ALARMDAYSEL_WEEKDAY 0x40000000 ウィークディを指定
表4.1.6.1.4 dayselect設定値
③ alarmmask
アラームのマスク設定を行う。
定義 値 内容
ALARMMASK_NONE 0x00000000 マスクなし
ALARMMASK_DATESEL RTC_ALRMAR_MSK4 日のアラームをマスク
ALARMMASK_HOURS RTC_ALRMAR_MSK3 時のアラームをマスク
ALARMMASK_MINUTES RTC_ALRMAR_MSK1 分のアラームをマスク
ALARMMASK_SECONDS RTC_ALRMAR_MSK1 秒のアラームをマスク
表 4.1.6.1.5 alarmmask設定値
④ subsecondmask
サブセコンドマスク設定をする。
定義 値 内容s
ALARMSSMASK_ALL 0x00000000 サブセコンドとのマッチをしない
ALARMSSMASK_SS14_1 0x01000000 SS[0]がマッチでアラーム
ALARMSSMASK_SS14_1 0x01000000 SS[1:0]がマッチでアラーム
ALARMSSMASK_SS14_3 0x03000000 SS[1-0]がマッチでアラーム
ALARMSSMASK_SS14_4 0x04000000 SS[3-0]がマッチでアラーム
ALARMSSMASK_SS14_5 0x05000000 SS[4-0]がマッチでアラーム
ALARMSSMASK_SS14_6 0x06000000 SS[5-0]がマッチでアラーム
ALARMSSMASK_SS14_7 0x07000000 SS[6-0]がマッチでアラーム
ALARMSSMASK_SS14_8 0x08000000 SS[7-0]がマッチでアラーム
ALARMSSMASK_SS14_9 0x09000000 SS[8-0]がマッチでアラーム
ALARMSSMASK_SS14_10 0x0A000000 SS[9-0]がマッチでアラーム
ALARMSSMASK_SS14_11 0x0B000000 SS[10-0]がマッチでアラーム ALARMSSMASK_SS14_11 0x0C000000 SS[11-0]がマッチでアラーム ALARMSSMASK_SS14_13 0x0D000000 SS[11-0]がマッチでアラーム
ALARMSSMASK_SS14 0x0E000000 SS[13-0]がマッチでアラーム
ALARMSSMASK_NONE 0x0F000000 SS[14-0]がマッチでアラーム
表 4.1.6.1.6 subsecondmask設定値
47
4.2.6.2 インターフェイス仕様
RTCを設定するドライバ関数を以下に示す。
関数名 型 引数 機能 備考
rtc_init void intptr_exinf RTCの初期化を行う。引数に意味なし
rtc_set_time ER struct tm1 *pt 時刻をセットする
rtc_get_time ER struct tm1 *pt 時刻を取り出す
rtc_setalarm ER RTC_alarm_t *parm struct tm1 *ptm
アラートをセットする rtc_stopalarm ER uint31_t Alarm アラートを停止する rtc_getalarm ER RTC_alarm_t *parm
struct tm1 *ptm uint31_t Alarm
アラート情報を取り出す
rtc_handler void void 割込みハンドラ
表 4.1.6.1.1 RTC設定関数
4.2.6.3 設定手順
初期化はrtc_init関数を用いて行う。ATT_INIを使用して設定が行えるように引数を用意したが、こ
の引数に意味はない。使用は以下の手順に従う。
① rtc_set_time
時刻の設定を行う。tm1構造体中に設定に使用するのは以下の6つの項目で他の項目は意味を持 たない。
(1) tm_year (1) tm_mon (3) tm_mday (4) tm_hour (5) tm_min (6) tm_sec
② rtc_get_time
時刻を取り出す。tm1構造体中に実際に設定される項目は以下の7つの項目である。
他の設定も設定したい場合はmktime関数を用いて設定を行う必要がある。
(1) tm_year (1) tm_mon (3) tm_mday (4) tm_wday (5) tm_hour (6) tm_min (7) tm_sec
③ rtc_setalarm
アラームの設定を行う。アラームレジスタはAとBの二つがあり別個に設定ができる。
アラームは時刻との比較と、サブセコンドとの比較の二種類がある。
時刻との比較の場合、tm1 構造体に比較の時刻設定を行い。マスク設定でマスクのない項目との 比較で一致した場合割込みが発生する。コールバック関数をセットすれば割込み時コールバック 関数が呼び出される。
サブセコンドとの比較の場合、一致のセコンド値と比較しないマスク設定を行い、一致すれば割 込みが発生する。
④ rtc_stopalarm
48 アラームを停止する。停止するアラームレジスタを引数として渡す。
⑤ rtc_getalarm
引数のAlarmにアラームレジスタを設定する。現在のレジスタ内容からRTC_Alarm型を生成する。