设置51单片机定时器1的优先级为低级的C语言
时间: 2024-05-27 11:13:22 浏览: 113
实现方法如下:
1. 首先需要定义一个结构体来保存定时器1的寄存器值,如下所示:
typedef struct {
uint8_t T1CON;
uint8_t TMR1L;
uint8_t TMR1H;
uint8_t PIR1;
uint8_t PIE1;
uint8_t IPR1;
} TMR1_REGS;
2. 然后定义一个全局的结构体变量,用来保存定时器1的寄存器值:
TMR1_REGS tmr1Regs;
3. 在初始化定时器1之前,先将其优先级设置为低级,如下所示:
IPR1bits.TMR1IP = 0; // 将定时器1的优先级设置为低级
4. 初始化定时器1的寄存器,将其值保存到上面定义的结构体变量中:
void initTimer1() {
// 初始化定时器1的寄存器值
tmr1Regs.T1CON = 0b00110000; // 预分频器为8,计数器停止
tmr1Regs.TMR1L = 0;
tmr1Regs.TMR1H = 0;
tmr1Regs.PIR1 = 0;
tmr1Regs.PIE1 = 0;
tmr1Regs.IPR1 = 0;
// 将定时器1的寄存器值写入对应的寄存器中
T1CON = tmr1Regs.T1CON;
TMR1L = tmr1Regs.TMR1L;
TMR1H = tmr1Regs.TMR1H;
PIR1 = tmr1Regs.PIR1;
PIE1 = tmr1Regs.PIE1;
IPR1 = tmr1Regs.IPR1;
}
5. 在主函数中调用initTimer1()函数即可完成定时器1的初始化。
阅读全文