单片机
返回首页

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

2016-08-28 来源:eefocus

定时器相对来说是最简单的了,也没有什么说的,
每个定时器模块都是 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发送数据
}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何调制IC555振荡器

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章