我不是天才,现在不是,以后也不会是.
但是,我过去是很塌实的人,过去是,现在不是.
为什么?因为上了这倒霉大学.
一个相当简单的实验--使用ADC接口0809完成一个光线强度的采集,分析系统,很简单不是?一上午就能完成不是?我也这样认为,我天真的以为这次可以省下大把时间写下那些矬学校布置的弱智作业,但是可惜学校不让.
众所周知,为了在某些信号线上产生脉冲波形需要维持电平一个短暂时间后变化该电平,于是这个维持动作是要一个延时单元的,那么什么延时最好用又容易用?我不是高手,不敢妄下结论,只知道以前编写的几万行程序里面用的都是Sleep或者SleepEx这两个api,虽然精度差些,一般的要求是足够用了.但是当我在两个outportb()(注:此函数系学校实验室提供的"标准"写实验台端口的函数,而非C函数outportb)之间加入Sleep()函数,实验台彻底瘫痪了,我和同组同学想到了所有的最坏的情况(我们从来都对学校的实验平台持保留态度的),台子换了N个,程序改了又改,我郁闷了,同学也郁闷了,毛病呢?健在!就这样我们一事无成的过了两天,最后我们基本是呆坐在台子边上摆弄线路了.
期间我也问过老师,矬人们对我的问题一般持置之不理的态度(其实我也明白,他们是不会,就是要个面子),有个女老师还好,耐心帮助我们调试,但是也没有什么进展,总之给我的印象是实验室的老师拿自己的设备没办法.
我终于失去了耐性,开始找和我实验类似小组的代码,找到一份据说是正确的代码,把他的延时单元改成Sleep(他原来用三层循环延时,这在我看来CPU )拿到我的电脑上运行,仍然跑不动.
原来学校的垃圾实验室后排的电脑一般充满了各种病毒,足以把VC卡死或搅的功能失调,我搬着台子换了三台电脑,终于弄到一台中毒轻些的机器,开始调试...失败.
我疯了,今天很可能有是一个毫无结果的日子,我只觉得对不起自己的时间.
都要走了的时候我做了个决定,借来的程序改回原样(去掉Sleep),再调试,我精神再次崩溃,居然这次AD转换的结果被顺利读出.
分析其原因,我想可能Sleep函数底层写了一些端口,导致了同实验室提供的函数(其底层也是驱动,调用采