实习工作小结第四天
时间:10-02
整理:3721RD
点击:
刚才都已经写完了,然后主题写的和昨天的一样,然后...被干掉了。好!重新来写!
今天的主要任务就是在之前的代码上加入一个CRC的校验,来增强数据传输的稳定性!看起来很简单的任务,往往都会让人栽个大跟头,今天的我就是这样!,一次失败的教训,严格来说,还没有解决问题的就不叫教训,还只是一个过程!硬件的问题就不说了,反正都解决了!软件上似乎是有一些全局变量或者是指针出问题了!
情况是这个样子!有四类命令!我分开一个命令一个命令的输入,基本上都可以校验正确(之所以说基本上是因为最后的时候第三个命令也不能通过了!)。但是当我混合输入,交错输入的时候,就出问题了!有时候是程序莫名其妙的输入乱码,有时候是变量的内容被改变了一堆乱七八糟的问题,我是真的看了一遍又一遍代码还是没有查出来!真的是火大啊!希望明天的时候可以解决然后和大家一起分享经验!
下面分享一个经典的结构“一次有效”
while(1){
if(key == 1 && key_1==1){
key_1 = 0;
//执行函数fun()
}
if(key == 0 && key_1 == 0){
key_1 = 1;
}
}
这个结构可以有效防止那种占据资源不放手的情况,就是说,你想要执行某一个功能,你就必须要首先放开这个功能。在这个函数中,key是你自己可以操作的开关变量,key_1是辅助变量。这个结构在进行按键扫描的时候可以有效防止按着不放的情况。但是也有一个致命的缺陷,就是无法防止抖动!
PS:本人现在大三,在嵌入式领域只能算是一个刚刚看见门槛的小学生,上面的写的东西大部分是我看的资料,也有一些是我的想法。如果您不小心点开了,又不幸看完了,那么我还真是感激不尽!当然,如果您愿意留下只言片语,或是交流,或是指正,鄙人更是感激万分!
末学后进在这里,希望与大家一起进步,成长!
今天的主要任务就是在之前的代码上加入一个CRC的校验,来增强数据传输的稳定性!看起来很简单的任务,往往都会让人栽个大跟头,今天的我就是这样!,一次失败的教训,严格来说,还没有解决问题的就不叫教训,还只是一个过程!硬件的问题就不说了,反正都解决了!软件上似乎是有一些全局变量或者是指针出问题了!
情况是这个样子!有四类命令!我分开一个命令一个命令的输入,基本上都可以校验正确(之所以说基本上是因为最后的时候第三个命令也不能通过了!)。但是当我混合输入,交错输入的时候,就出问题了!有时候是程序莫名其妙的输入乱码,有时候是变量的内容被改变了一堆乱七八糟的问题,我是真的看了一遍又一遍代码还是没有查出来!真的是火大啊!希望明天的时候可以解决然后和大家一起分享经验!
下面分享一个经典的结构“一次有效”
while(1){
if(key == 1 && key_1==1){
key_1 = 0;
//执行函数fun()
}
if(key == 0 && key_1 == 0){
key_1 = 1;
}
}
这个结构可以有效防止那种占据资源不放手的情况,就是说,你想要执行某一个功能,你就必须要首先放开这个功能。在这个函数中,key是你自己可以操作的开关变量,key_1是辅助变量。这个结构在进行按键扫描的时候可以有效防止按着不放的情况。但是也有一个致命的缺陷,就是无法防止抖动!
PS:本人现在大三,在嵌入式领域只能算是一个刚刚看见门槛的小学生,上面的写的东西大部分是我看的资料,也有一些是我的想法。如果您不小心点开了,又不幸看完了,那么我还真是感激不尽!当然,如果您愿意留下只言片语,或是交流,或是指正,鄙人更是感激万分!
末学后进在这里,希望与大家一起进步,成长!
用2个变量在延时前后来接收按键返回值能不能实现这些问题?
主要是,你加上延时的话,会阻塞程序的进程!理想的按键消抖是希望在检测按键的时候程序也在执行!毕竟实际情况中,对实时性要求比较高,而且有时候你加进去延时的话,会影响显示效果!
学习了