做任务 送科比网站,网站建设广告词,如何彻底清除网站的网页木马,wordpress获取文章作者id周末的时候#xff0c;一个微信好友让我旁边看一段代码在写下面的文章之前#xff0c;我先简单说下写代码是一件非常有意思的事情#xff0c;同时也是一件需要我们认真对待的事情#xff0c;我不认为一定要把代码写的和大神一样看不明白#xff0c;但是至少要逻辑清晰一个微信好友让我旁边看一段代码在写下面的文章之前我先简单说下写代码是一件非常有意思的事情同时也是一件需要我们认真对待的事情我不认为一定要把代码写的和大神一样看不明白但是至少要逻辑清晰不能出现混淆不清的情况发生。最近一年我也在不断的提高自己的编程能力之前的工作很多是做处理系统和驱动等事情但是实际的应用编程并没有很强的功底。也是在不断学习和前进也非常感谢朋友和同事们对我的帮助和支持。——这段代码是这样的static unsigned short timer_tick_cnt 0;static ___interrupt USER_TIMER void timer_isr(void)//中断服务函数
{if (TMR-CON BIT(15)) //定时器溢出中断标志位{TMR-CON | BIT(14);//清中断///putchar();//todo中断函数执行程序...timer_tick_cnt;}
}static unsigned short timer_tick_get_current_timer(void)
{unsigned short timer_tick_count timer_tick_cnt;return timer_tick_count;
}unsigned short usRecord 0;unsigned char timer_tick_timeout_wait(unsigned short *p_var, unsigned short timeout)
{if( timer_tick_get_current_timer() - *p_var timeout ){///usRecord timer_tick_get_current_timer();///printf(rec%d,*p_var%d\n,usRecord,*p_var);///printf(TIMER return 0\n);return 0;}*p_var timer_tick_get_current_timer();///usRecord///printf(TIMER return 1\n);return 1;
}
unsigned short testTimer 0;
#define TIME_TICK_1MS_1S 1000
void testHandler(void)
{if(timer_tick_timeout_wait(testTimer,TIME_TICK_1MS_1S))//1ms的中断溢出,故1000为1s{printf(helloworld\n);//问题点是如果timer_tick_timeout_wait的参数timeout定义为unsigned short,在约65s(65535ms)后该函数一直返回0而不再返回1,unsigned int正常}
}
int main(void)
{timerInit();//1ms的定时器中断,该函数不是问题点问题点在下面while(1){testHandler();}
}这个是原始的代码我没有做任何的修改。问题他在代码里面描述的比较清晰//问题点是如果timer_tick_timeout_wait的参数timeout定义为unsigned short,在约65s(65535ms)后该函数一直返回0而不再返回1,unsigned int正常细心的人会发现一个问题这 timer_tick_cnt 该死的变量一直递增我之前写过一篇文章说是内核里面时间戳的问题如果保存时间戳的变量定义有问题那可能也会导致时间有问题。这也是他发现他的代码有问题的原因。——我再说下其他的情况他设计的这个系统的初衷是系统定时器到一个指定的时间后去执行一个函数但是直接把在定时器里面的变量拿到外面去判断这里就不很好。定时器应该只完成定时的事情至于到了多少时间告诉外面的其他任务就好了这样可以做到高内聚。变量timer_tick_cnt在其他地方操作后续有问题排查起来肯定会很难受。——变量的命名、函数的命名、代码风格简直不堪入目有的地方用下划线、有的地方用驼峰。还有这个函数的执行我有点看不懂CPU就是这样被你累坏的啊。关于变量和函数命名的网站我推荐这个这个网站非常适合我们https://www.chtml.cn这不比你自己想好多了。——宏的含义不清晰这样给宏命名是非常不好的先是1MS 又是1S所以这个宏到底是啥如果不看代码的话是很难理解意思。如果是我我会表明这个宏做什么事情但是后面要加上MS因为这个事件是MS的时间。——函数的命名大家可能也发现了有些是驼峰有些下划线。这不是关键关键是有些函数的用意没有表明清楚不知道这个函数的作用是什么。以上是我自己的个人观点我觉得写代码是要对待一个艺术品把这个东西做得好做得优秀是一件令我们愉悦的事情。大家共勉之