发现一篇很好的文章,内容提示如下,具体的看PDF
如果你需要提下列问题,请自觉阅读本贴,如果读完以后你还要贴代码,偶就没办法了。
1.I2C程序怎么调
2.为什么我的程序不对,然后贴一堆代码上来
3.为什么我这样写对,那样写不对
首先建立一个观点:程序是搞电子技术里面最最最最简单的东西,因为他最最最说得清楚,你这样写了,处理器就会这样做,如果没有按照你的想法来做,那一定是你没写对。
话说硬件设计还需要很多数据库似的知识支撑,高频还需要黑色艺术细胞,学写程序除了背点语句,掌握一些基本技巧外加做好规划之外,真的不需要啥东西,会说话就会写程序。
现在言归正传,前面说了,程序就是你想处理器做什么。在你动手之前,应该先找张白纸,写下你想干什么,然后画出流程图(贴代码问程序的请扪心自问,是否画了流程图)。再明确程序的模块划分,每个模块的输入、输出变量和占用资源。
模块划分就是把任务拆分成互不相关的部分,比如软主机I2C程序可以拆分成发生启动位、发送停止位、发生一个字节、接收一个字节、发送应答位、发送非应答位、接收一个字节、读取应答位等。
其次是要想方设法从最基本的地方开始调试,来这里贴代码的都是一贴一大篇,要知道我们都不敢这样写代码,何况是自称新手?程序要写一块调一块,细到什么程度?真是菜鸟,就细到写完发送启动位就送出来拿示波器检查,检查边沿、电平和时间参数是否跟自己设计的值一样。
模块有大有小,取决于站在哪个层次看问题和写程序的熟练程度。如果是从一个使用PCF8563的数字钟系统来说,I2C通讯整个可以看成一个模块。另外如果调试技术够成熟,写完整个从器件选址应答过程再看也不迟,甚至连示波器都不需要。
程序调试黑宝书.pdf
(847.97 KB, 售价: 1 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|