【发布时间】:2020-01-13 14:50:29
【问题描述】:
我正在尝试制作一个程序,它使用定时器 0 的中断。问题是我必须添加一个带有 2 个变量的函数。 定时器配置将通过定义具有以下原型的函数来执行:void int_tmr0 (int conf_int, int conf_T0),我以这种形式完成了:
void conf(int p1, int p2)
{
T0CON=p1;
INTCON=p2;
}
我尝试将记录:T0CON、INTCON 放在这两个变量中:p1 和 p2。 我不确定是否可以通过以下方式在主函数中调用这两个变量:
void main()
{
WDTCONbits.ADSHR = 1;
MEMCONbits.EBDIS = 1;
TRISD = 0x0;
INTCONbits.GIE = 1;
p1=0b10001000;
INTCONbits.TMR0IE = 0;
}
这是整个代码:
#include <xc.h>
unsigned char counter;
void interrupt f1()
{
if(INTCONbits.TMR0IE && INTCONbits.TMR0IF)
{
counter++;
INTCONbits.TMROIF=0
}
void conf(int p1, int p2)
{
T0CON=p1;
INTCON=p2;
}
void main()
{
WDTCONbits.ADSHR = 1;
MEMCONbits.EBDIS = 1;
TRISD = 0x0;
INTCONbits.GIE = 1;
p1=0b10001000;
INTCONbits.TMR0IE = 0;
}
while(1){
LATD= counter;
}
}
【问题讨论】:
-
你想做什么?我没听明白,你的代码中永远不会调用你的“conf”函数。
-
定时器中断 0。定时器配置将通过定义如下函数来执行: void int_tmr0 (int conf_int, int conf_T0) 该函数将使用定时器 0 对应的寄存器。而不是 void int_tmr0 (int conf_int, int conf_T0) 我用过 void conf(int p1, int p2)
标签: c microcontroller pic pic18 xc8