我写了一个使用Timer0
中断的程序。
我似乎无法编译我的代码,我在第 14 行有一个错误,no identifier in declaration
.
这是整个代码:
#include<xc.h>
#define _XTAL_FREQ 4000000
#define param_1=0b10001000;
#define param_2=0b10101010;
int counter=0;
void interrupt f1() {
if(TMR0IE && TMR0IF) {
counter++;
INTCONbits.TMR0IF=0;
}
int volatile param_1=0, param_2=0;
void int_tmr0(int conf_int, int conf_T0) {
conf(param_1,param_2);
}
void conf(int p1, int p2) {
T0CON= T0CON || p1;
INTCON= INTCON||p2;
}
int main() {
WDTCONbits.ADSHR=1;
MEMCONbits.EBDIS=1;
TRISD=0x0;
INTCONbits.GIE=1;
INTCONbits.TMR0IE=0;
while(1){
LATD=counter;
}
}
定义常量param_1
和param_2
,失去=
和;
:
#define param_1 0b10001000
#define param_2 0b10101010
您似乎在函数void interrupt f1()
中缺少一个右括号,如果您正确缩进代码,这将更容易检测。
此外,常量名称的标准是大写。