你把程序源码打包过来 ,看看,,
程序已经上传了 很正常,楼主把
k=+1;
j=+1;
赋值成 常量了 , 永远等于 1{:lol:}
要写成 :
k=k+1;
j=j+1;
或者:
k++;
j++;
即可.
楼主C语言语法不过关啊~~~
k+=1;
j+=1; 已经改成k++也不行 哪有=+1这样的写法,是+=1 {:4_176:}服了你,前面说外部中断进去了,K和j的值不加,永远是1,那是你程序中写的k=+1;这个不管怎么执行都是1,修改成k+=1;或者k++;都行
后面有是仿真又有问题,{:4_197:}都怀疑你有没有手动启动这个中断 huhuan 发表于 2023-12-3 15:50
服了你,前面说外部中断进去了,K和j的值不加,永远是1,那是你程序中写的k=+1;这个不管怎么执行都是1,修 ...
#include <stc8g.h>
#include <string.h>
#include <stdio.h> // 标准输入输出定义
#include <intrins.h>
sbit WIEGAND_D0 = P3^2;
sbit WIEGAND_D1 = P3^3;
sbit LED = P5^5;
unsigned char i=0;
unsigned char k ;
unsigned char j ;
volatile unsigned char wiegand_buffer;
volatile unsigned char wiegand_index = 0;
void ExternalInterrupt0() interrupt 0
{
k=1;
}
void ExternalInterrupt1() interrupt 2
{
j=2;
}
void Init(void)
{
P3M0 = 0x00;
P3M1 = 0x00;
P5M0 |= 0x20;
P5M1 &= ~0x20;
EA= 1;//总中断
EX0 = 1;//外部中断0
IT0 = 1;//外部中断0下降沿触发
EX1 = 1;
IT1 = 1;
}
void main()
{
Init();
while (1) {
}
}
改成这样还是不行,就赋个值也不行,到底错在哪里了? 重装软件,加长变量名,可能有冲突
页:
1
[2]