完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 为了labview 于 2017-6-20 10:29 编辑
这个延时函数在其他程序中可以正常运行,但在我自己编的程序中出错了, 错误原因附在图片上,代码中红色部分时出错所在位置 函数代码如下, 求助懂得人给我解答一下, /********************Delay_MS()*******************/ void Cpu_Delay100US(word us100) { /* Total irremovable overhead: 16 cycles */ /* ldhx: 5 cycles overhead (load parameter into register) */ /* jsr: 5 cycles overhead (jump to subroutine) */ /* rts: 6 cycles overhead (return from subroutine) */ /* aproximate irremovable overhead for each 100us cycle (counted) : 8 cycles */ /* aix: 2 cycles overhead */ /* cphx: 3 cycles overhead */ /* bne: 3 cycles overhead */ /* Disable MISRA rule 19 checking - Octal constant used */ /*lint -esym( 960, 19) */ /* Disable MISRA rule 55 checking - Non-case label used */ /*lint -esym( 961, 55) */ asm { loop: /* 100 us delay block begin */ /* * Delay * - requested : 100 us @ 16MHz, * - possible : 1600 c, 100000 ns * - without removable overhead : 1592 c, 99500 ns */ pshh /* (2 c: 125 ns) backup H */ pshx /* (2 c: 125 ns) backup X */ ldhx #$00C5 /* (3 c: 187.5 ns) number of iterations */ label0: aix #-1 /* (2 c: 125 ns) decrement H:X */ cphx #0 /* (3 c: 187.5 ns) compare it to zero */ bne label0 /* (3 c: 187.5 ns) repeat 197x */ pulx /* (3 c: 187.5 ns) restore X */ pulh /* (3 c: 187.5 ns) restore H */ nop /* (1 c: 62.5 ns) wait for 1 c */ nop /* (1 c: 62.5 ns) wait for 1 c */ nop /* (1 c: 62.5 ns) wait for 1 c */ /* 100 us delay block end */ aix #-1 /* us100 parameter is passed via H:X registers */ cphx #0 bne loop /* next loop */ rts /* return from subroutine */ } /* Restore MISRA rule 19 checking - Octal constant used */ /*lint +esym( 960, 19) */ /* Restore MISRA rule 55 checking - Non-case label used */ /*lint +esym( 961, 55) */ } void DELAY_MS(word x) { unsigned int WF; WF=x/2; while(WF--) { Cpu_Delay100US(20); } }
|
|
相关推荐
8个回答
|
|
别沉啊,自顶~~·
|
|
|
|
应该是数据类型的问题吧,
void DELAY_MS(word x) { unsigned int WF; WF=x/2; x是word,WF是int,word可能不能向int做格式转换 |
|
|
|
可以直接转换啊,int是32位,word是16位,应该不是这个问题,,, |
|
|
|
我想会不会是因为我用的是COdewarrior6.3,软件版本的问题呢????
|
|
|
|
别沉啊,大家都来讨论一下
|
|
|
|
就是格式转换的问题,word是啥变量,怎么和整型变量在一块转换啊
|
|
|
|
我发现我只要在前面定义#define N=800 这一类的,就会出现后面的情况,不定义,该函数就可以正常运行。
|
|
|
|
不懂帮顶
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
787 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
755 浏览 0 评论
850 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1534 浏览 0 评论
1239 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12060 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 13:11 , Processed in 1.052667 second(s), Total 85, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号