• 検索結果がありません。

⑥ 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型を生成する。

関連したドキュメント