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