Changeset 107 for uKadecot/trunk/ssp/target/grsakura_ccrx/target_timer.h
- Timestamp:
- Jun 10, 2015, 8:40:31 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/ssp/target/grsakura_ccrx/target_timer.h
-
Property svn:mime-type
changed from
text/plain
totext/plain; charset=SHIFT_JIS
r101 r107 12 12 * Copyright (C) 2013 by Mitsuhiro Matsuura 13 13 * 14 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 15 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 16 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 17 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 18 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 19 * XR[hÉÜÜêĢ鱯D 20 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 21 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 22 gip 23 * Ò}j 24 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 25 * Ì³ÛØKèðfÚ·é±ÆD 26 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 27 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 28 * ÆD 29 * (a) Äzzɺ¤hL 30 gipÒ}j 31 AÈÇjÉCãLÌ 32 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 33 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 34 * ñ·é±ÆD 35 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 36 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 37 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 38 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 39 * ÆÓ·é±ÆD 14 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 15 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 16 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 17 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 18 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 19 * スコード中に含まれていること. 20 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 21 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 22 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 23 * の無保証規定を掲載すること. 24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 25 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 26 * と. 27 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 28 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 29 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 30 * 報告すること. 31 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 32 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 33 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 34 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 35 * 免責すること. 40 36 * 41 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨42 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI43 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF44 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC»45 * ÌÓCðíÈ¢D37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 38 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 39 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 40 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 41 * の責任を負わない. 46 42 * 47 43 */ 48 44 49 45 /* 50 * ^C}hCoiGR-SAKURApj46 * タイマドライバ(GR-SAKURA用) 51 47 */ 52 48 … … 60 56 61 57 /* 62 * ^C}Ýnho^̽ßÌè58 * タイマ割込みハンドラ登録のための定数 63 59 */ 64 #define INHNO_TIMER INT_CMT0_CMI /* ÝnhÔ*/65 #define INTNO_TIMER INT_CMT0_CMI /* ÝÔ*/66 #define INTPRI_TIMER -5 /* ÝDæx*/67 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* Ý®«*/60 #define INHNO_TIMER INT_CMT0_CMI /* 割込みハンドラ番号 */ 61 #define INTNO_TIMER INT_CMT0_CMI /* 割込み番号 */ 62 #define INTPRI_TIMER -5 /* 割込み優先度 */ 63 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* 割込み属性 */ 68 64 69 65 #ifndef TOPPERS_MACRO_ONLY 70 66 71 67 /* 72 * ^C}lÌà\»Ì^68 * タイマ値の内部表現の型 73 69 */ 74 70 typedef uint16_t CLOCK; 75 71 76 72 /* 77 * ^C}lÌà\»Æ~bPÊÆÌÏ·73 * タイマ値の内部表現とミリ秒単位との変換 78 74 * 79 * 1ms Ì^C}[èÝðgp·éÌÅ»ÌNbNðè`·éD75 * 1msのタイマー割り込みを使用するのでそのクロックを定義する. 80 76 */ 81 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/ Åáªüä8 = 6MHz */77 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/最低分周比8 = 6MHz */ 82 78 #define TO_CLOCK(nume, deno) ((CLOCK)(TIMER_CLOCK * (nume) / (deno))) 83 79 #define TO_USEC(clock) ((SYSUTM)((clock) * 1000U / TIMER_CLOCK)) 84 80 85 81 /* 86 * ÝèÅ«éÅåÌ^C}üúiPÊÍà\»j82 * 設定できる最大のタイマ周期(単位は内部表現) 87 83 */ 88 84 #define MAX_CLOCK ((CLOCK) 0xFFFFU) 89 85 90 86 /* 91 * «\]¿pVXeðæèo·ÛÌÔÌ©ÏèliPÊÍà\»j87 * 性能評価用システム時刻を取り出す際の処理時間の見積り値(単位は内部表現) 92 88 */ 93 #define GET_TOLERANCE (100U) /* xêÌ©ÏèliPÊÍà\»j*/89 #define GET_TOLERANCE (100U) /* 処理遅れの見積り値(単位は内部表現)*/ 94 90 #define BEFORE_IREQ(clock) \ 95 91 ((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)) 96 92 97 93 /* 98 * RyA}b`^C}Rg[WX^ÌÝèl94 * コンペアマッチタイマコントロールレジスタの設定値 99 95 */ 100 96 /* 101 * NbNIðrbg97 * クロック選択ビット 102 98 * 103 * bit7 Í\ñÌæÅ è, ÝÍ1Åè99 * bit7は予約領域であり, 書込みは1固定 104 100 */ 105 101 #define CMT_PCLK_DIV_8 (0x0080U) … … 109 105 110 106 /* 111 * RyA}b`^C}RX^gWX^iCMCORj107 * コンペアマッチタイマコンスタントレジスタ(CMCOR) 112 108 * 113 * RyA}b`üúð1msÆ·éD 114 * üÓW 115 [NbNiPCLKj48MHzð8ªü·éÌÅC 116 * 1üú ½è166.7nsecÆÈèC6000üúÅ1msi^CeBbNÌüújÆ·éD 109 * コンペアマッチ周期を1msとする. 110 * 周辺モジュールクロック(PCLK)48MHzを8分周するので, 111 * 1周期あたり166.7nsecとなり,6000周期で1ms(タイムティックの周期)とする. 117 112 */ 118 113 #define CMCOR_PERIOD (TIMER_CLOCK) 119 114 120 115 /* 121 * RyA}b`^C}èÝvæÝèWX^iiISELRijii= èÝxN^Ôj116 * コンペアマッチタイマ割り込み要求先設定レジスタi(ISELRi)(i= 割り込みベクタ番号) 122 117 */ 123 118 #define ICU_ISEL_CPU (0x00U) … … 127 122 128 123 /* 129 * ^C}ÌN®124 * タイマの起動処理 130 125 * 131 * ^C}ðú»µCüúIÈ^C}Ývð¶³¹éD126 * タイマを初期化し,周期的なタイマ割込み要求を発生させる. 132 127 */ 133 128 extern void target_timer_initialize(intptr_t exinf); 134 129 135 130 /* 136 * ^C}Ìâ~131 * タイマの停止処理 137 132 * 138 * ^C}Ì®ìðâ~³¹éD133 * タイマの動作を停止させる. 139 134 */ 140 135 extern void target_timer_terminate(intptr_t exinf); 141 136 142 137 /* 143 * ^C}WX^lÌÇÝoµ138 * タイマレジスタ値の読み出し 144 139 */ 145 140 Inline uint16_t rx630_cmt_getcount(void) … … 149 144 150 145 /* 151 * ^C}WX^lÌ«Ý146 * タイマレジスタ値の書き込み 152 147 */ 153 148 Inline void rx630_cmt_setcount(uint16_t count) … … 157 152 158 153 /* 159 * ^C}Ì»ÝlÌÇoµ154 * タイマの現在値の読出し 160 155 */ 161 156 Inline CLOCK 162 157 target_timer_get_current(void) 163 158 { 164 /* AbvJEg̽ß^C}WX^lð»ÌÜÜÔ·*/159 /* アップカウントのためタイマレジスタ値をそのまま返す */ 165 160 return (rx630_cmt_getcount()); 166 161 } 167 162 168 163 /* 169 * ^C}ÝvÌ`FbN164 * タイマ割込み要求のチェック 170 165 */ 171 166 Inline bool_t … … 176 171 177 172 /* 178 * ^C}Ýnh173 * タイマ割込みハンドラ 179 174 */ 180 175 extern void target_timer_handler(void); -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.