智能车制作
标题:
程序问题 望帮忙
[打印本页]
作者:
lhqc212
时间:
2009-10-14 11:50
标题:
程序问题 望帮忙
本帖最后由 chenrunshe_007 于 2009-11-16 17:41 编辑
我的程序单步运行没问题,可是连续运行就不可控,串口中断如上,就是将寄存器的值读出,然后判断,符合条件后调用那几个函数,Start里面是判断字符串,符合的话进入RTI中断开始计时,我就是按这个思路做的,可是出现不可控的情况,不知道是我程序哪里的问题,希望各位前辈指点一下!我已经纠结很久了......
interrupt void SCI1_ISR(void)
{
byte iRece,receData;
receData = SCI1SR1;
receData = SCI1DRL;
ReceBuffer[fram_num++] = receData;
if(fram_num == 1){
if(ReceBuffer[0] != 0x26) fram_num = 0;
}
else if(fram_num == 2){
if(ReceBuffer[1] != 0x30) fram_num = 0;
}
if(fram_num == 3){
if(ReceBuffer[2] != 0x31) fram_num = 0;
}
for(iRece = 3;iRece < 16;iRece++){
if(ReceBuffer[iRece] == 0x0d){
fram_num = 0;
Start();
Stop();
Standard();
Thinner();
Wash();
}
}
}
void Start(void) {
a=0;
if(start[a]==ReceBuffer[a]){
a++;
if(a == 9){
count = 0;
sec = 0;
min = 0;
CRGINT = 0x80;
}
}
}
复制代码
作者:
zdhly0401
时间:
2009-10-14 12:09
1#
lhqc212
清中断标志没
作者:
lhqc212
时间:
2009-10-15 08:09
清了呀
作者:
lhqc212
时间:
2009-10-15 08:38
读SCISR1不是清标志位的么?
作者:
chiusir
时间:
2009-10-15 19:29
void start(void) ---------void main(void)---------没看明白你的程序,最好附上完整的。
作者:
lhqc212
时间:
2009-10-16 10:47
5#
chiusir
我把程序发来了。。。程序是要通过串口接收数据,然后比较是否与原来设定的字符串相同,再做动作,其他控制都没有问题了,就是没有处理没用的代码,现在就是串口接收中断和判断这边,总是不能很好的控制,而且如果想回发的话也不可以,我用的是232-485串口,真的很纠结~~~~~~~~~
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2