刚拿到Chronos手表,发现这个BUG。看到论坛里好多人遇到这个问题,现学了一下TCL 找到了原因
原理如下:
Chronos Control Center(CCC) 使用了TCL脚本语言做的界面,读取系统时间的函数是
- clock format [clock seconds] -format "%m"
这个表达式得到的结果是一个两位数的月份,比如现在就是"09"
CCC里直接将这个09转成整数,但由于0开头的默认都是八进制数,遇到08 09这样的直接就歇菜了……
解决办法:
先干掉前导零
找到代码文件eZ430-Chronos CC 1_2.tcl 里面的函数 sync_get_time_and_date
把这一行
- set sync_date_month [expr [clock format [clock seconds] -format "%m"]]
替换成
- set month_str 9
- scan $month_str %d [clock format [clock seconds] -format "%m"]
- set sync_date_month [expr {$month_str}]
即可。
编译好的文件见附件。
下载后请复制到原CCC文件夹下(需要调用eZ430_Chronos_CC.dll)运行
参考链接:
TCL语言里的月份问题
http://wiki.tcl.tk/948
如何把TCL程序打包成exe
http://wiki.tcl.tk/11861
[
本帖最后由 southwolf1813 于 2013-9-28 07:10 编辑 ]