在使用CCS的过程中,我发现在有关于有软件延时的程序中会出现问题,感觉延时没起到作用,比如一个简单的例子,让灯闪烁,使用delay函数(函数体内用两个for循环嵌套那种),这种延时就不会有效果,而用i=50000; while(i--);这种才有效果.而且即使这样你用do while语句都不行.
在调试1602时其中也有软件delay延时,用CCS编译出来以后完全没有显示,而以此相同的程序复制到IAR上编译,结果完全正确! 以前TI工程师黄争老师来开讲座的时候我向他提及了这个问题,他说我这个问题比较个体化...
所以在这个问题上我很是困惑啊,以至于我现在大都用IAR,只有用timer的时候才用CCS,不知论坛里面的兄弟姐妹也是否遇到过这种问题呢?
用CCS的话,最好用自带函数__delay_cycles( );
括号填循环次数就行。
我也遇到了啊,不执行,难道就没有别的方法了吗???为什么直接把delay 函数屏蔽掉了呢
楼主有在CCS下查看C代码的反汇编吗?是否有被编译器优化