1月8日-1月9日
(1)开始调试程序过程中发现串口发送始终不成功,刚开始对于com1口和com3口也不很确定
其实驱动已经装了进去,上位机可以自动识别的,最后确定了:USB2RS232口是com1口,用靠近电源接口的usb口
(2)终于了解了怎样来把程序烧入单片机里,原来之前每次建立工程文件是都搞错了,都没有把可以进行硬件调试的那个复选框P&E Hardware Debugger选中,而只是建立了可以软件仿真(Metrowerks Simulator)的工程文件,而软件仿真的license又没有,所以在线仿真每次都不成功
另外,在每次set target的时候,即后来烧程序进去时,每次都没有按照正确的操作来进行。其实,应该早一些向杨老师请教的,无故浪费了so much time!
(3)在测试程序是否正确写入单片机中,我们编了一个try2程序(利用PortA_Bit0口的不断闪烁来检验)。在调试此程序时我们也出了一点小错误,灯灭,延时,然后灯亮
可是刚开始没有在灯亮后也加延时,结果灯一直灭着,后来杨老师发现了问题,才得以改正,自己还是没经验,其实程序上明显可以看出问题的。
(4)今天继续调串口发送,我们准备发送固定的数据(i.e. 00,FF,然后用万用表来检查电平的高低,看看发送成功与否),看看串口调试助手能否接收到
在中间也出现了些分歧,不过可以一个一个试,其实 LDAA SCI0SR1这一句没有必要每次都用,只需读一次SCI0SR1让其置位即可。
后来结合示波器不断改数据来观察波形变化,可以知道有电压变化,即数据可以发送;然后调节串口调试助手的设置,通过16进制显示,终于成功了!!
串口调试程序OK了!调试程序:SCI Modulation.asm,放在了SCI2的Source文件夹里
(5)调完SCI之后进行ATD模块的调试,杨老师把电位器焊上,测好电压换算之后却发现始终不是我们想要的那个数,问题又出现了,最后直接把5V电压加上,我们采用8位右对齐方式,按道理说应该在串口调试助手窗口里显示00FF才对,但是每次都不成功,时而00FC时而00FA,而且交替变着,改变了很多设置之后,仍然找不到问题所在,中间有过一次飙到00FE,但估计是干扰所致,之后又回到00FC和00FA了,到底问题出在了哪里啊??
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1月10日
下午开始调ATD模块,不知道到底哪里出了问题,感觉应该不是软件的问题,不过还是听从杨老师的建议改了很多的设置,但是依然还是没有效果,不知道问题出在哪里!!试着调了分电器,还是达不到要求的值啊!!应该是硬件的问题吧??有干扰???不过这下麻烦大了,没碰到过这些问题,也不知道从哪里着手,索性写了份E-mail求助HCS12那本书的编者,不知道能否有解答!!期待……
ATD调不好了,索性整ECT模块了,4口和10口焊起来了(技术真是差啊,不会焊),PWM输出40ms脉冲方波,由ECT1口采集,真是不调不知道啊,竟然采集不到数据,每次ECT传到上位机的值都是0000啊,根本没采集到,示波器测10口波形,没错啊,有信号啊,怎么会采不到呢??程序调了N长时间,还是没有结果!!和王桂想了很长时间,人都要绝望了,依然没有结果,最后干脆调之前杨闻睿的C程序,妈呀,什么破程序,他的程序也采不到,ATD模块没法检验,但是ECT模块输出依旧0000,怎么他的程序也有问题啊,对他彻底失望了,本来以他的程序为模板的,看来凡是还得靠自己啊!!算法上应该不会错,程序也没道理错啊,单步执行来看内存D(放在A,B里了),结果发现每次TFLG2 都置1,而且写1无法清除!!完全按照书上的清除方式,依然没效果。考虑到会不会虽然我们在单步执行,但是计数依然在进行,这样到时肯定每次都置位,即使清除标志位,运行速度太快,肯定又要置位!!只是自己的想法,感觉没道理啊,都单步执行了,但到底问题出在哪里?????
Give up了,看明天了,和杨老师讨论下再说吧,真的很逊啊,遇到问题老师自己解决不了啊!!!!
调程真是一件痛苦的事啊!!!!!!!
有个问号:杨师兄那样的论文怎么毕业的啊?感觉他的论文里问题越来越多了,怪不得杨老师说他的程序不好,要我们自己从头编起!!
以后要多注意,不能像师兄那样啊,不然对之后的学弟学妹都不好啊!
Bless Tomorrow!
1月11日
没办法,昨天都没有搞出来,今天必须抓紧了!下周采集数据,时间真的很紧啊!还有吴Boss的资料要整理,明后两天又要去做家教啊,时间只能靠挤的了!对不起兄弟们了,说好要去唱K的,结果要食言了,Sorry!
还是有进展的,不知道怎么想到要去看看数据计算那一块的,但是还是把内存调了出来看,惊喜的发现,原来我们放数据的地方($200X那几位根本不能用的),写不进数据的,1FFF后面都写不进数据的,原来内部只写到1FFF的,还是自己对单片机了解太少了,存储器这块没有掌握好!对于Flash存储器,PPage就更一窍不通了,估计应该用不到吧!再说!改了存储地址到100X,发现终于可以了!!!!欧嘞,欧嘞,欧嘞,欧嘞,咿呀唔喂!哈哈哈哈!连续采集也OK!!(最后程序汇总的时候还要注意,要开辟一块地址来存储采集的数据)
不过,貌似采到的数都是251C啊,这样换成16进制9500,乘以2微秒才19ms啊,离我们设定的PWM40ms方波脉冲差的也忒大了点啊!问题又来了,解决一个,又来一个。到底哪里出了问题??示波器检测,大概38ms周期,怎么又有问题了,难道输出有误差,不过38倒是19的两倍啊!!回头看看杨师兄弟C程序,找到了,我们的总线频率是8MHz不是16MHz,这样每次计数脉冲周期就是4us了,正好9500×4us=38ms,搞定!!!估计那2ms的误差就是硬件的原因!啊,我太帅了!
杨老师和王桂调实时中断程序那一块时,怎么输出都不是占空比50%的方波,而且如果加上传送的话,波形就极其不理想了,不传的话,还好些,估计传送占用时间。但为什么不输出占空比50%的方波?没道理啊,在loop中循环,中断就翻转,中断时间都一样啊!!!!看了看程序,我开始觉得中断返回会回到Entry,重新开始执行,这样刚开始让Port_Bit0置位就肯定会影响占空比的,结果实践再一次证明,阿拉是对的!!哈哈,太有成就感了!
恩,我果然是个天才!!!
这样看来问题就只有ATD那一块了,下周在做,明天要家教,晚上给boss打工了!!
生活……
文章评论(0条评论)
登录后参与讨论