微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 新手:我想请教关于定时器唤醒系统中一段代码的意思

新手:我想请教关于定时器唤醒系统中一段代码的意思

时间:10-02 整理:3721RD 点击:
这是我想请教的代码:
void Set_ST_Period(uint sec)
{
ulong sleepTimer = 0;
sleepTimer |= ST0;
sleepTimer |= (ulong)ST1 << 8;
sleepTimer |= (ulong)ST2 << 16;
sleepTimer += ((ulong)sec * (ulong)32768);
ST2 = (uchar)(sleepTimer >> 16);
ST1 = (uchar)(sleepTimer >> 8);
ST0 = (uchar) sleepTimer;
}
这段代码的左移和右移是什么含义?
小弟,谢谢各位大神的解答!

左移右移应当结合寄存器来看。楼主请问ST1 0-7位存储的字段意义和8-15位字段意义各是什么?

不过我猜测这段代码的作用无非也就是先获取定时器当前计数器的值sleepTimer ,然后加上sec 的定时时长,得到最后的一个比较值写入寄存器。实现sec 时间的定时。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top