您的位置 首页 国产IC

PIC16位单片机CAN(7)定时器

定时器相对来说是最简单的了,也没有什么说的,每个定时器模块都是16位定时器/计数器,由以下可读/写寄存器组成:?TMRx:16…

定时器相对来说是最简略的了,也没有什么说的,

每个定时器模块都是 16 位定时器 / 计数器,由以下可读 / 写寄存器组成:
? TMRx:16 位定时器计数寄存器
? PRx:与定时器相关的 16 位定时器周期寄存器
? TxCON:与定时器相关的 16 位定时器操控寄存器
需求留意的是:
1:定时器是16位了,也能够装备为32位的,详细看文档,这儿运用16位的定时器。
2:PRx:与定时器相关的 16 位定时器周期寄存器。也便是TMRx的值和PRx值持平时发生中止。】
下面看程序:
/******************************************************************
初始化Time1为定时器形式
参数:
******************************************************************/
void Time1Init(void)
{
T1CONbits.TON = 0; // Disable Timer
T1CONbits.TCS = 0; // Select internal instruction cycle clock
T1CONbits.TGATE = 0; // Disable Gated Timer mode
T1CONbits.TCKPS = 0b11; // Select 1:256 Prescaler
TMR1 = 0x00; // Clear timer register
PR1 =46875; // Load the period value 相当于1秒发生一次中止
T1CONbits.TON = 1; // Enable Timer
}
中止处理函数为
/******************************************************************
定时器1中止 1s中止一次 发送一次CAN数据
参数:
******************************************************************/
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag
Ecan1_WriteMessage(AD_Data);//CAN发送数据
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/272445.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部