|
发表于 2008-1-7 11:37:27
|
显示全部楼层
楼主还挺热心的,我也是当时一时兴趣就把程序拿来改在一个51的板上了,因为当时正好手里有个128X64的做好的板子,液晶也正好是0108的,只是我没有用总线来做,就用3根IO线来模拟,所以修改了液晶的低层后来用.
移植过程中发现了一些编译错误,大都修改好了,但是有2个错误我基本上不能解决,一个就是上面我提到的struct Node *next;还有一个就是代码中的一个申请一个临时节点的地方,怎么做都是报错(先说明一下我对C基本不通,以前都是用汇编的,读书也没学C,最近2年才慢慢用C,基本上都是使用的一些低档的C语句,像什么结构\类\链表\复杂的指针等等基本不懂),后来发现整个程序中都找不到Node这个词,想想是否这个有问题,于是改了就对了,后来又请教了搞软件的同事,说的确该大写.然后就是临时申请的那个节点,不是在函数的开始位置申明的,所以keil编译器也不认(不知是否有什么设置的方法让其接受,搞软件的同事说是C和C++的问题),我就按照我的一贯做法,将其在函数开始位置声明一个,然后代码中间来直接使用就OK了,这个对我反而会更容易理解一点.
然后就是液晶缓冲直接用了全部点阵大小的RAM,很多芯片都没有这么大,我先前想把你液晶的更新方式改为直接修改,不使用缓冲的方法,但还没有时间去弄,这个是完全可以的,因为程序的速度很够,现在我用的51,并且液晶是模拟时序的,都觉得太快了,还有就是动态内存的方法是否可以改为用一个数组来处理呢,因为占用的空间也不大,好象就几个字节吧,这样就用内部RAM来做了,不知是否可行,因为我说了对C的高级用法不懂,楼主有时间的话,再处理处理? |
|