TIMER 定时器

    技术2022-06-26  43

    增强型定时器模块(ECTECT功能相当于高速的I/O,由一个4位预分频器、一个16位自由运行计数器816IC/OC通道,216位脉冲累加器以及一个16位模数递减计数器组成。

        

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    TEN   

    TSWAI

    TSFRZ

    TFFCA

    0       

    0       

    0        

    0        

    TSCR1 寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM 方式下的行为,还包括标志的管理方式。TEN:定时器使能位,此外它还控制定时器的时钟信号源。要使用定时器模块的 ICOC 功能,必须将 TEN 置位。

    0:定时器/计数器被禁止,有利于降低功耗。

    1:定时器/计数器使能,正常工作

      2、计时器系统控制寄存器 2(TSCR2)

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    TOI   

    0       

    0       

    0       

    TCRE 

    PR2    

    PR1    

    PR0    

    TOI:定时器/计时器溢出中断使能。

    0:中断被禁止。

    PR2,PR1,PR0:计数器预分频选择。

    这三位所决定的分频因子如下表所示。分频因子选择

    PR2

    PR1

    PR0

    PrescaleFactor

    0

    0

    0

    1

    0

    0

    1

    2

    0

    1

    0

    4

    0

    1

    1

    8

    1

    0

    0

    16

    1

    0

    1

    32

    1

    1

    0

    64

     

    3控制寄存器(TCTLl-TCTL4

    TCTLl-TCTL4 分为两组,分别对 IC OC 电路进行设定,每组 16 个二进制位,每两个二进制位管理一个通道。其中 TCTLlTCTL2 设定各个 OC 通道 匹配时的动作,包括切断 OC 与输出引脚的联系,而 TCTL3TCTL4 设定 IC 应引脚的何种动作,包括禁止 IC 的响应。

    TCTL3   寄存器偏移量:$000A

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    EDG7B

    EDG7A

    EDG6B

    EDG6A

    EDG5B

    EDG5A

    EDG4B

    EDG4A

    TCTL4   寄存器偏移量:$000B

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    EDG3B

    EDG3A

    EDG2B

    EDG2A

    EDG1B

    EDG1A

    EDG0B

    EDG0A

    可在任何时候读或写。

    各个控制位的作用如下:

    EDGnBEDGnA 输入捕捉边沿控制位,这 8 对控制位(EDG7BEDG7AEDG0BEDG0A)对输入捕捉的边沿检测电路进行设置。当二者同时为 0 时,IC 与输入引脚断开。

     

    输入捕捉边沿检测电路设置

    CnFICOC 通道中断请求标志。

    0:上次清除标志以来,ICOC 通道没有有效动作。

    1ICOC  通道已经出现动作。

    以下是一段程序

    void init_ECT(void){   TSCR2_PR = 3;       // M_clock分频8   TIOS_IOS6 = 0;      // T6口捕捉场同步信号   TCTL3_EDG6A = 1;    // 场同步信号捕捉沿设置   TCTL3_EDG6B = 1;    // 同时捕捉上升沿、下降沿      TIOS_IOS5 = 0;      // T5口捕捉行同步信号   TCTL3_EDG5A = 1;    // 行同步信号捕捉沿设置   TCTL3_EDG5B = 0;    // 捕捉上升沿      TIE_C6I = 1;        // 场同步信号中断禁止,由串口命令控制   TIE_C5I = 0;        // 行同步信号中断禁止,在每一场中断中打开         TSCR1_TEN = 1;      // 启动定时器   return;}

    // 场同步中断#pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 14 T6OddEven(void)   //场同步中断{ }

    // 行同步中断#pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 13 T5RowSyn(void)      //T5视频采集行同步中断{                        }

     

     

    EDGnB

    EDGnA

    边沿检测电路设置

    0

    0

    禁止捕捉

    0

    1

    捕捉上升沿

    1

    0

    捕捉下降沿

    1

    1

    上升沿下降沿均捕捉

    ICOC 选择寄存器(TIOS)

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    IOS7

    IOS6

    IOS5

    IOS4

    IOS3

    IOS2

    IOS1

    IOS0

    TIOS 寄存器用于指定各个通道的功能,即工作于 IC 还是 OC 方式。当某位 IOSn=0 时,对应的通道 n 为输入捕捉(1C)通道,否则当 IOSn=1 时,通道 n为输出比较(OC)通道。其中的各位可以在任何时候写入或读出。

    计时器中断使能寄存器(TIE

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    C7I

    C6I

    C5I

    C4I

    C3I

    C2I

    C1I

    C0I

    如果将 TIE 中的某位清 0,相应的标志位就不能引起硬件中断。如果被置 1,相应的标志位就可以引起中断。

    6主定时器中断标志寄存器(TFLG1TFLG2)

    Bit7

    Bit6

    Bit5

    Bit4

    Bit3

    Bit2

    Bit1

    Bit0

    C7F

    C6F

    C5F

    C4F

    C3F

    C2F

    C1F

    C0F

    TFLG1 对应 8 ICOC 通道,当某 CnF=1 时说明对应的 ICOC 通道有动作,表明该通道有中断事件发生

      ECT实际上是一个16位的可编程计数器,它的基本时钟频率可以通过预分频器设置,用于产生波形输出,测量输入波形,统计脉冲个数,可以作为定时中断功能和独立时钟基准。

       下面介绍一下用到的寄存器

        1定时器/计数器系统控制寄存器 1TSCR1


    最新回复(0)