忘備録-備忘録

技術的な備忘録

RX62Nのタイマを使うその1

2015-11-25 14:01:23 | RX62N
RX62NのタイマMTUを使いmsオーダーで時間待ちするプログラムです。割り込みを使用していません。

  1. #include "iodefine.h"
  2. /*
  3.  * タイマの初期化
  4.  *  使用タイマ MTU8
  5.  * 割込みは使用しないがフラグは使用する。
  6.  */
  7. void initTimer(void)
  8. {
  9.     MSTP(MTU8) = 0;
  10.     MTU8.TCR.BYTE = 0x43;
  11.     MTU8.TIER.BIT.TGIEB = 1;
  12.     MTU8.TCNT = 0;                
  13.     MTU8.TGRB = 750 - 1;        /* PCLK = 48MHzで1msecごとに割り込み        */
  14.     IR(MTU8,TGIB8) = 0;
  15. }
  16. /*
  17.  * タイマスタート
  18.  */
  19. void startMTU(void)
  20. {    
  21.     MTU8.TCNT = 0;
  22.     MTUB.TSTR.BIT.CST2 = 1;            /* Start MTU2_8 */
  23. }
  24. /*
  25.  * タイマストップ
  26.  */
  27. void stopMTU(void)
  28. {    
  29.     MTUB.TSTR.BIT.CST2 = 0;            /* Stop MTU2_8 */
  30. }
  31. /*
  32.  * 1msec経過したかチェック(割込みフラグをポーリング)
  33.  */
  34. unsigned char checkIRFlag(void)
  35. {
  36.     if(IR(MTU8,TGIB8) == 1)
  37.     {
  38.         IR(MTU8,TGIB8) = 0;
  39.         return(1);
  40.     }
  41.     else
  42.     {
  43.         return(0);
  44.     }
  45. }
  46. /*
  47.  * msecオーダーでの時間待ち
  48.  */
  49. void delay_ms(unsigned int ms)
  50. {
  51.     startMTU();
  52.     while(ms > 0) {
  53.         if( checkIRFlag() == 1 ) {
  54.             ms--;
  55.         }
  56.     }
  57.     stopMTU();
  58. }


最新の画像もっと見る

コメントを投稿