|
我在32L下ucosii练习的文件,不需扩展RAM,单片32L即可,编译环境:AVR Studio 4.13+avr-GCC4.1.2
使用7+1个任务,资源占用情况:
Device: atmega32
Program: 20948 bytes (63.9% Full)
(.text + .data + .bootloader)
Data: 1910 bytes (93.3% Full)
(.data + .bss + .noinit)
支持命令,通过串口发送,格式为:#xx/x/xxxx/xx/xxxxxxxx/xxxxxx%
第1,2位为任务选择,01为重新启动,02为查询启动次数或修改指定EEROM地址中的数值,03为设置或读取时间,04为设置或读取日期,05为启动ADC转换,06为回显发送的数据.可支持99个命令.
第3位为任务操作类型:0为写,1为读.
第4-7位为地址或其它类型的数据,比如可以寻址9999个EEROM的地址,或16位数据.
第8,9位为8位的数据.比如说向EEROM地址0x000A写入0x2A,命令为:#02/0/0010/42%;读取地址0x0012的命令为:#02/1/0018%
第10-17位为日期,格式为20070802,任务会把这个日期转换为从元年的第一天开始到这个日期的总的天数.这个天数据会每隔24小时加一.查询时任务会把这个总的天数转换日期并计算出星期输出到串口.设置日期格式命令:#04/0/0000/00/20070803%,读取日期命令:#04/1%
第18-23位为时间,格式为223803,晶振为4M,由ucosii的tick计时,会有偏移,设置时间时任务会把这时间转换为对等的tick,设置命令:#03/0/0000/00/00000000/223803%
命令还可以自己添加,比如说读/写特定地址、Rx或变量的值
上面的"/"是不必的,只是为了顺眼.
对于收到的数据,我都转换为十进制的了,反而还有些不习惯,比如0xFF,串口会收到255的.
我的ADC转换不理想,收到的数据根本不是那一会事,还经常跳动.
刚开始没准备发表的,所以程序格式上有些乱.
点击此处下载armok01164959.rar |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|