|
楼主 |
发表于 2014-6-26 23:17:56
|
显示全部楼层
C语言代码自我感觉没问题,我只if里面的判断方式修改一下就可以执行啦!
case 5: {
if( OffOn == 1){原来这里是if(1 == OffOn)现在修改啦
_tm3c0 &= ~0x08 ; //定时器暂时不计时这里可以执行啦
LEDTime = LEDPWM ;//关闭掉LED
OffOn = 0 ; //设置为关状态
ConfigState = 3 ; //设置配置指示灯为呼吸灯
//这里在程序完善的时候可以把用户参数放入eeprom
}else{
_tm3c0 |= 0x08 ; //开启定时器即可恢复灯亮
OffOn = 1 ; //设置为开状态
ConfigState = 0 ; //关掉配置指示灯
}
}break ;
汇编看不大懂下面是两种的汇编结果
;file H:\HTK_Project\test\test.c
;80 case 5: {
;81 if(1 == OffOn ){
01EE 5F25 clr i
01EF 7025 set [0A5H].0
01F0 1F05 clr ACC
01F1 7C95 sz [095H].1 解释若[095H].1为0则跳过下一行
01F2 1F85 set ACC
01F3 4425 xor a, i
01F4 390A snz Z
01F5 29FF jmp L92
;file H:\HTK_Project\test\test.c
;82 _tm3c0 &= ~0x08 ; //定时器暂时不计时
01F6 35D8 clr T3ON
;file H:\HTK_Project\test\test.c
;83 LEDTime = LEDPWM ;//关闭掉LED
01F7 4706 mov a, LEDPWM[0]
01F8 4084 mov LEDTime[0], a
01F9 4707 mov a, LEDPWM[1]
01FA 4085 mov LEDTime[1], a
;file H:\HTK_Project\test\test.c
;84 OffOn = 0 ; //设置为关状态
01FB 7495 clr [095H].1
;file H:\HTK_Project\test\test.c
;85 ConfigState = 3 ; //设置配置指示灯为呼吸灯
01FC 0F03 mov a, 3H
01FD 408C mov ConfigState[0], a
----------------------------------------------------------------------------------------------------------------------------------------下面是正常的----------------------------------------------------------------------------------------------------------------
;file H:\HTK_Project\test\test.c
;80 case 5: {
;81 if( OffOn == 1){
01EE 7895 snz [095H].1 解释若[095H].1不为0则跳过下一行
01EF 29F9 jmp L92
;file H:\HTK_Project\test\test.c
;82 _tm3c0 &= ~0x08 ; //定时器暂时不计时
01F0 35D8 clr T3ON
;file H:\HTK_Project\test\test.c
;83 LEDTime = LEDPWM ;//关闭掉LED
01F1 4706 mov a, LEDPWM[0]
01F2 4084 mov LEDTime[0], a
01F3 4707 mov a, LEDPWM[1]
01F4 4085 mov LEDTime[1], a
;file H:\HTK_Project\test\test.c
;84 OffOn = 0 ; //设置为关状态
01F5 7495 clr [095H].1
;file H:\HTK_Project\test\test.c
;85 ConfigState = 3 ; //设置配置指示灯为呼吸灯
01F6 0F03 mov a, 3H
01F7 408C mov ConfigState[0], a
;file H:\HTK_Project\test\test.c
;86 //这里在程序完善的时候可以把用户参数放入eeprom
;87 }else{
01F8 29FC jmp L79
L92:
;file H:\HTK_Project\test\test.c
;88 _tm3c0 |= 0x08 ; //开启定时器即可恢复灯亮
01F9 31D8 set T3ON
;file H:\HTK_Project\test\test.c
;89 OffOn = 1 ; //设置为开状态
01FA 7095 set [095H].1
;file H:\HTK_Project\test\test.c
;90 ConfigState = 0 ; //关掉配置指示灯
01FB 5F0C clr ConfigState[0] |
|