首先调试了一下以前下下的那个 UART 发送程序, 调了半天搞不定 ..... 不知道为啥 ,最后发现估计是寄存器处理的不好吧, 反正就是不行,没有办法了,只好退化程序 ...... 原来是用队列来做环形缓冲区的,算法没有问题,我用 VC6 调试过的, 原来是结构体指针传递的, 后来简化成全局变量和数组,简单操作 ,还是不行 ,最后改成了经典的闭塞式程序, 也就是送数据的时候在死等 ...... 话说,别看这, 还真好用,唉 ......XD 算了算了,还是弄简单的吧,反正就是送送调试信息而已,要求不高. 话说 AVR 的内部RC振荡的话偏差有点大,用来UART送数据经常乱码, 于是还是挂了个4M 的晶振上去,现在完全接受正确了 ...... 19.2K 的波特率,一般般吧,过的去,本来想高点的,不过资料上面,4M 的最小偏差是 0.2% , 而 0.2% 的最高可用波特率就是 19.2K 了,算了,这速度算可以了.迟点弄到个 7.3824 晶振的时候再让波特率上去~~~~ 反正现在一个字节数据就送200us左右,可以接受,对程序架构影响不大.
然后就是写菜单程序了. 以前一直以为菜单很简单 ..... 然后前个星期认真的想了一下, 发现以前真的是愚蠢,菜单确实不好写啊 .....当然不是1层几个选择那样的简单菜单,那样谁都会写......主要面向的是多层,我写的是4层,其实多少层不是问题,最重要的是想通那个架构,那么以后都好修改. 于是围绕这个问题,又思考了几天 ...... 还是没啥收获 , 在网上 (21ic 和 ouravr)分别参考了几份菜单的程序,看不懂 .... orz 有点复杂 .... 然后终于在其中一份资料看到一个 "模拟堆栈" 的思想,也就是在切换到下层菜单的时候先讲本层保存起来 ...... 啊啊,就是这个了, 我想不通的地方就是这个死角了!!! 这个相通后发现突然豁然开朗~~~大脑开始转动起来, 在草稿上面构思 画流程什么什么的 ..... 不断的调试, 最后终于成功了!!! 相通了之后发现其实也不是很难,不过菜单应该算是比较简单的那类,以后用到的时候再优化,反正基本概念和方法掌握了. 消耗也不大,就几个变量而已,没啥 . 最后发现C语言的功底确确实实的加深了, 操作函数指针数组,字符数组指针等一些比较郁闷的东西也极少出错了, 修炼是没有白费的 ..... 注意基础,基础......
基本上又一天了 ..... 有个同事辞工了. 感到有点惋惜, 他教会了我很多很多东西, 平时也很喜欢讨论问题,给了我很多很多的意见. 没有他, 估计我现在的水平要倒退1年 ...... 不过也没什么,天下没有不散的筵席, 当一些变成回忆的时候, 在这里只能嘱咐他找到更加好的工作了.
阅读(780) | 评论(0) | 转发(0) |