打印

晕~~~参与了就要**到底啊,怎么能因为他人的一句话就轻

[复制链接]
楼主: 芯行天下
手机看帖
扫描二维码
随时随地手机跟帖
21
machunshui| | 2009-3-6 09:21 | 只看该作者 回帖奖励 |倒序浏览

楼主的断言调试语句不错啊

楼主的断言调试语句不错啊

使用特权

评论回复
22
machunshui| | 2009-3-6 09:37 | 只看该作者

做好模块化,非常重要

做好模块化,非常重要.

每个模块实现尽量单纯的功能,

模块设计遵循高内聚,低耦合,

代码采用多文件结构,用好宏定义,

自然就会使程序健壮,易于调试,扩充.

使用特权

评论回复
23
芯行天下|  楼主 | 2009-3-6 10:25 | 只看该作者

调试代码,变量定义

关于调试代码在最后工作完成后是否去掉的问题,我认为在编写程序时就注意调试代码的编写位置在采取必要的手段,比如用宏定义,这样在最后只需要处理一下宏定义就可以,保证生成的最终目标文件是纯净的。

关于变量的定义:变量全部写在一个文件中和分开写都做过。,

写在一个文件中时,也尽量分块来写,每一块做好注释,这样如果移植到其它地方用时,只需要把一块移植走就行了,这样即保证了好查找,同时也兼顾了好移植的问题。

使用特权

评论回复
24
ayb_ice| | 2009-3-6 20:29 | 只看该作者

技巧缘于积累,水平...

使用特权

评论回复
25
sz_kd| | 2009-3-6 21:08 | 只看该作者

顶,支持

使用特权

评论回复
26
johnwjl| | 2009-3-7 12:19 | 只看该作者

这一条值得学习。

写在一个文件中时,也尽量分块来写,每一块做好注释,这样如果移植到其它地方用时,只需要把一块移植走就行了,这样即保证了好查找,同时也兼顾了好移植的问题

使用特权

评论回复
27
宇宙飞船| | 2009-3-7 15:08 | 只看该作者

俺只有两句话,一句是真的,一句是假的,

第一句:找一位高手代码来看看啦! //呵呵!
第二句:混合编程啦!        //这一回不喜欢机器码的人要晕倒了。

使用特权

评论回复
28
天雨粟| | 2009-3-8 09:34 | 只看该作者

有收获!支持!

谈点浅见,凑个热闹!
程序如果能通过KEIL模拟,用单步执行的办法,问题易解决,至少我觉得不是大问题.

不能通过KEIL模拟的地方,如LED,LCD,E2ROM,串口(模拟串口时,有时要手工置位TI,不太方便),可以将其作为单独的硬件模块,调试通过后,以后需要时直接添加进去.

中断任务要尽可能简单,至理名言.理由还是KEIL无法直接模拟中断,因为在PC上其时序与真实环境下大不一样,昨天为此吃过苦头.那是一个键处理任务,10毫秒定时中断扫描,扫描设置及四个方向键,无法在KEIL下直接仿真,只有不停地下到片子里,不停地修改,以后当然也可以直接引用,但调试太过辛苦,不知这种情况有没有好的调试办**

使用特权

评论回复
29
ww34021984| | 2009-3-8 11:08 | 只看该作者

学习...

使用特权

评论回复
30
渤海三叠浪| | 2009-3-8 23:00 | 只看该作者

我同意15楼的说法 !!去掉技巧两个字

技巧就是垃圾的代名词!!!

使用特权

评论回复
31
渤海三叠浪| | 2009-3-8 23:09 | 只看该作者

勤奋决定速度,思想决定高度

(*^__^*) 嘻嘻…… 我刚学单片机没有几个月。大家都不用proteus么?proteus仿真据说可以加快开发速度啊!!
我没有做过任何项目,大家多多指点啊 !!!

<匠人手记>里面的魔鬼语录 说得真好!!!(*^__^*) 嘻嘻……

使用特权

评论回复
32
芯行天下|  楼主 | 2009-3-9 10:18 | 只看该作者

谢谢大家支持,将标题“技巧”两字去掉

谢谢大家的支持,将标题“技巧”两字去掉。

使用特权

评论回复
33
程序匡人| | 2009-3-9 14:32 | 只看该作者

循环语句中的展开,提高效率

for( ; ;)语句是最常用的语句之一,当我们的循环较深时,会点用很常的时间,执行效率不高。而如果我们把for(;;)语句展开的话,就可以提高一定的执行效率。
如下:
原语句
for(i=0;i<1000;i++)
{
  语句;
}

展开后语句
for(i=0;i<250;i++)
{
 语句1;
 语句2;
 语句3;
 语句4;
}

循环语句这样展开后,可以通过反汇编进行查看,可以提高执行效率,但增加了代码量。

使用特权

评论回复
34
芯行天下|  楼主 | 2009-3-9 16:22 | 只看该作者

变量的定义

看了楼上的FOR语句后

不知大家在使用FOR语句时,语句中的变量大家是如何定义的。是定义成一个uchar型还是uint型呢。

它们又有何区别呢。

针对8位CPU,如何定义已经没有区别了。
而针对16位,32的呢。
uchar型的定义:占用一个字节
uint型的定义:占用2个或4个字节
有利也有害,前者定义,占用代码空间少了,却占用了更多的执行周期,而后者定义占用了更多的代码空间,却减少了执行的周期。

达到相同的作用,却有不同的速度,看来写程序时还有很多注意的呀。

使用特权

评论回复
35
渤海三叠浪| | 2009-3-9 18:48 | 只看该作者

我支持你!!

使用特权

评论回复
36
渤海三叠浪| | 2009-3-9 19:54 | 只看该作者

33楼的做法不值得提倡!!

代码量和效率  在大部分情况下 我不关心!!

使用特权

评论回复
37
渤海三叠浪| | 2009-3-9 20:01 | 只看该作者

关于19楼

有着联系的大量的#define ......
我 一般弄个头文件存着这些东东


对于全局变量 我最近的做法是  

不用头文件存放他们,因为全局变量一般来说比较少!
若模块A.C首先用到全局变量i  则 在模块A的最顶部“定义” 变量i
即  
INT8U  i;

然后,若模块B.C的某个子函数中用到全局变量i  
则 在该子函数 声明

 extern INT8U i;/* 在A.c中定义*/

使用特权

评论回复
38
渤海三叠浪| | 2009-3-9 20:02 | 只看该作者

我用的是keil (*^__^*) 嘻嘻……

使用特权

评论回复
39
三块石头| | 2009-3-9 21:09 | 只看该作者

断言不错

增加了出错时的数据,不错

使用特权

评论回复
40
ch2003_23| | 2009-3-9 23:21 | 只看该作者

全是知识啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则