本帖最后由 gongzhu 于 2013-12-5 20:42 编辑
玩万年历,不得不提醒自己生日到了,拼了命也要搞出点儿进展来,今日倒算清闲无人打扰,算是阶段成果最后一版了,即将完工,再测试几天无大问题就力争下周上程序!
单独调试GPS时间和定位采集都没有问题,集成到大数字版万年历后首先出现变量溢出,不得不重新维护变量,逐步定义为xdata、idata。编译OK,下载后开机死机加乱码故障。
死机故障
而后把两个结构都定义为xdata,全局字符串定义为idata,砍掉无关变量, 修改了写12864LCD时序问题,然后基本正常!
单独GPS版中:
void write_data(uchar Dispdata)
{
chk_busy();
RS = 1;
RW = 0;
E = 1;
Lcd_Bus = Dispdata;
delay(5);
E = 0;
delay(5);
}
大数字万年历中:
void write_data(uchar Dispdata)
{
chk_busy();
LCM_RS=1; LCM_RW=0; LCM_EN=1;
Lcd_Bus=Dispdata;
LCM_EN=0;
}
在写LCD前都加上以下两句就不用中间再加延时了:
write_com(0x30);
write_com(0x06);
GPS和万年历同时开机,电脑同步接收监控gps串口数据,很快万年历显示gps时间,然后定位信息,运行一段时间后万年历时间假死,可电脑程序正常,赶紧捕捉保存接收到的串口数据,通过分析发现:
$GPRMC数据长度逐渐增加时,接收完全没有问题,可一旦长度减少就“死机”了,待长度增加到正常的72字节时时间又复活走动。
下载单独GPS版,发现无论数据长短都走时正常,显然程序是没有毛病的,难道移植后出现了变量冲突?
心想反正有LCD可以显示信息,便将关键节点的 if...else 前后信息显示于LCD同步观察,使用电脑手动输入刚才出现问题的一段串口数据。
后逐步判断到 sprintf语句后增加了写LCD 就正常了,心想不就是等效增加点儿延时吗,就换成 Delay(50);后再测试就正常了
一个小疑问:手上的一个大数字版万年历中使用的星期是自编的日期转换函数而不是使用DS1302内部寄存器数据。
可提供一组数据供测试(我的程序标志尾是'\r'回车,手动发送时需注意增加回车键):
$GPRMC,,V,,,,,,,,,,N*53
$GPRMC,235953.00,V,,,,,,,,,,N*76
$GPRMC,082716.00,V,,,,,,,231113,,,N*74
$GPRMC,002030.00,A,3333.89114,N,11858.99972,E,0.070,8.54,281113,,,A*65
$GPRMC,002031.00,A,3333.89095,N,11858.99971,E,0.440,356.21,281113,,,A*62
$GPRMC,002300.00,A,3333.90825,N,11858.99433,E,0.037,3.10,281113,,,A*66
$GPRMC,002301.00,A,3333.90835,N,11858.99434,E,0.033,150.16,281113,,,A*64
$GPRMC,072233.00,A,3333.90255,N,11859.00407,E,0.072,358.99,041213,,,A*6B
$GPRMC,072234.00,A,3333.90257,N,11859.00408,E,0.053,18.70,041213,,,A*52
$GPRMC,072235.00,A,3333.90260,N,11859.00411,E,0.198,4.09,041213,,,A*6A
$GPRMC,072455.00,A,3333.89520,N,11859.00192,E,0.543,184.37,041213,,,A*69
$GPRMC,072728.00,A,3333.88778,N,11859.00346,E,0.353,3.77,041213,,,A*68
$GPRMC,072729.00,A,3333.88746,N,11859.00339,E,0.271,3.74,041213,,,A*6E
$GPRMC,072738.00,A,3333.88653,N,11859.00367,E,0.336,184.79,041213,,,A*61
准备的改进是:
1、改19264或更大的屏幕,把24节气和节日做进来,本公司四班三运转的班别也做进来
2、自动修正时间功能。通过计算两次校时的时间差值,自动计算修正的时间基数。
3、可辅助读取 $GPGSA 数据,判断是否有卫星信息,一旦出现一颗卫星即可以认定此时 $GPRMC 时间准确(非gps模块内部时间)。
基本算完成的系列图片:
首界面
gps界面
一乐中淘的相关配件
蜘蛛网
定位成功
纪念意义
|