PIC16位單片機CAN(7)定時器
每個定時器模塊都是 16 位定時器 / 計數(shù)器,由以下可讀 / 寫寄存器組成:
? TMRx:16 位定時器計數(shù)寄存器
? PRx:與定時器相關(guān)的 16 位定時器周期寄存器
? TxCON:與定時器相關(guān)的 16 位定時器控制寄存器
需要注意的是:
1:定時器是16位了,也可以配置為32位的,具體看文檔,這里使用16位的定時器。
2:PRx:與定時器相關(guān)的 16 位定時器周期寄存器。也就是TMRx的值和PRx值相等時產(chǎn)生中斷?!?/div>
下面看程序:
/******************************************************************
初始化Time1為定時器模式
參數(shù):
無
******************************************************************/
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 相當(dāng)于1秒產(chǎn)生一次中斷
T1CONbits.TON = 1; // Enable Timer
}
中斷處理函數(shù)為
/******************************************************************
定時器1中斷 1s中斷一次 發(fā)送一次CAN數(shù)據(jù)
參數(shù):
無
******************************************************************/
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag
Ecan1_WriteMessage(AD_Data);//CAN發(fā)送數(shù)據(jù)
}
關(guān)鍵詞:
PIC16位單片機定時
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論