历史上的今天
返回首页

历史上的今天

今天是:2025年06月06日(星期五)

正在发生

2020年06月06日 | Tinyos之使用Msp430Counter32khz获取系统时间

2020-06-06 来源:eefocus

使用平台:TelosB 


操作系统:TinyOs


最近要为论文写实验数据,需要读取系统的时间,进行一些运算。


Tinyos有提供Msp430Counter32khz 组件,该组件提供接口 Counter .


该接口有如下命令和事件:


1、get()命令


调用该命令,会返回计数值。计数动作是从系统启动的时候就开始了。(如果操作系统配置为低功耗模式会停止计数)


2、isOverflowpending()命令 


是否有溢出(true /false)


3、clearoverflow()命令


清除挂起状态


4、overflow()事件


给出当前系计数值已经溢出的信号量。


继续分析,得知该组件是有以下两个组件实现的:(关于Msp430TimerC这个组件以后再好好研究,这个组件提供了MSP430的所有时钟接口)


component  Msp430TimerC;


component new Msp430Counter(T32khz) as Counter;//该组件使用uint16_t 进行计数


Msp430Counter32khz = counter  ;


Counter.Msp430Timer ->Msp430TimerC.TimerB;


现在,要实现读取系统运行时间的功能。由于组件使用T32Khz,也就是计数一次(Ticks),相当于系统运行1/32ms。


为了描述时间,定义了一个结构体,分为秒和毫秒级,秒采用4个字节,ms使用2字节(与组件匹配)


typedef nx_struct nxSYS_Time_t {

    nx_uint32_t uiSeconds;//转换的秒数

    nx_uint16_t usTicks;//滴答计数变量

} nxSYS_Time_t;


滴答计数变量转换为秒(S)的处理


一般情况,当计数溢出时,也就是计数65535,次数相当于系统运行65535/32/1000 = 2s,因此在signal事件里需要将


uiSecond值增加2;当滴答计数为65535/2=32678 且小于65535时,此时秒数增加1


但这里需要注意一个问题,就是用户获取时间是随意的,因此,滴答计数变量会遇到三种情况要处理:


1、当滴答值小于65535/2=32678 的时候,不加1


2、当滴答值大于32678且小于65535的时候,加1


3、当用户连续两次都在32678和65535获取get命令时,仅在第一次加1,第二次不能加1


通过以上分析,对获取系统运行时间的核心处理程序如下:



bool flag =1;

nxSYS_Time_t* GetTime() {

uint16_t temp;

uint32_t tmp1;

temp = call Msp430Counter32khz.get();

if ( temp>>15 &&flag) 

{

atomic {

        SysClock.uiSeconds++;  

        flag= 0;       

        }

}

atomic {

            SysClock.usTicks = temp & 0x7fff;

        }

return &SysClock;

}



async event void Msp430Counter32khz.overflow() 

{

   call Msp430Counter32khz.Clearoverflaow();

   atomic 

  {

if(!flag)

{

SysClock.uiSeconds += 1;  

}

else

{

  SysClock.uiSeconds += 2;

}

           

    flag =1;

   }

}

这里提供了一种获取系统时钟的思路,当然如果给出2012-09-12 14:14:14这样的形式会更好。

推荐阅读

史海拾趣

CQR SECURITY公司的发展小趣事

CQR SECURITY公司最初是一家专注于网络安全技术研发的小型创业公司。在创始人的带领下,公司团队攻克了一系列网络安全难题,开发出了具有高度创新性的安全协议。这一技术突破迅速吸引了业界关注,多家大型企业开始与CQR合作,共同推动产品的商业化应用。随着合作的深入,CQR逐渐在电子安全领域建立了自己的地位,最终发展成为一家业内知名的安全解决方案提供商。

Eastman Kodak Company公司的发展小趣事

经过破产保护和重组的洗礼后,伊士曼柯达公司更加注重创新和可持续发展。公司加强了与新兴科技公司的合作,积极探索新的业务模式和市场机会。同时,柯达还致力于研发更加环保、高效的影像产品和技术,以满足客户对高品质影像的需求。未来,伊士曼柯达公司将继续秉承创新、品质、服务的理念,不断推动影像行业的发展和进步。

Eclipse Magnetics公司的发展小趣事

随着技术的不断进步,伊士曼柯达公司不断推出新的产品和服务,以满足市场的多样化需求。在20世纪初,柯达已成为全球最大的胶卷供应商,并占据了美国摄影市场的绝大部分份额。此外,公司还积极向国际市场扩张,通过设立分支机构和办事处,将产品销往全球各地。这一时期,柯达不仅凭借其优质的产品赢得了广泛的客户基础,还树立了良好的品牌形象。

B.B. Battery公司的发展小趣事

在国内市场取得一定成绩后,B.B. Battery公司开始积极拓展国际市场。他们参加国际电池展会,与全球知名企业建立合作关系,将产品打入国际市场。同时,公司还注重品牌建设,通过提升产品质量和服务水平,树立了良好的品牌形象。这些努力使得B.B. Battery公司的品牌在全球范围内都享有较高的知名度和美誉度。

ETI Systems公司的发展小趣事

ETI Systems公司自创立之初,就专注于研发具有创新性的电子产品和解决方案。在公司发展的早期,它推出了一款高性能的无线通信设备,该设备采用了当时最先进的信号处理技术,极大地提升了数据传输的效率和稳定性。这一创新产品不仅帮助ETI Systems在市场上获得了良好的口碑,也引领了整个行业的技术发展方向。

Blue Sky Research公司的发展小趣事

为了进一步提升竞争力,Blue Sky Research开始寻求产业链整合的机会。公司与上下游企业建立紧密的合作关系,共同推动激光技术产业的发展。通过整合产业链资源,Blue Sky Research实现了从原材料采购到产品销售的全流程控制,提高了生产效率和产品质量。同时,公司还积极参与行业标准的制定和推广,推动整个行业的健康发展。

问答坊 | AI 解惑

自动调零放大器在应变测试仪中的应用

放大器的温漂、零漂是非常令人头疼的问题,该文章给出了一个很好的解决方案。…

查看全部问答>

Freescale 2009 seminar之七Interfacing Display Peripherals to the i.MX Processors

Interfacing Display Peripherals to i.MX Processors ►Display technology for multimedia applications ►Overview of display support on i.MX ►Guidelines on display interfacing with i.MX Processor Display Technolog ...…

查看全部问答>

CAN-bus 规范V2.0 版本

内容来自周立功的canbus协议,中文版…

查看全部问答>

minigui 中的GetDlgItemInt函数的参数

请问一下这个函数的参数是什么,返回值是什么? 我用的是minigui1.6版 谢谢。…

查看全部问答>

急!急!急!请教一个关于udp通信的问题

我想在一个多任务程序中用udp方式实现任务之间的通信,应该属于在本地机上实现通信,不知道怎么做啊,把ip设成一样的127.0.0.1就可以了吗?…

查看全部问答>

第二次免费开发板赠送,40mb 开发资料包:实例,原理图,keil 正式版,免费下载

第二次免费开发板赠送,40mb 开发资料包:实例,原理图,keil 正式版,免费下载 第二次免费开发板赠送,40mb 开发资料包:实例,原理图,keil 正式版,免费下载 下载50个单片机程序实例和开发板原理图,学林电子免费开发板暑期助学活动报名!暑假在家 ...…

查看全部问答>

SOS c#开发的程序怎么才能在win mobile 2003 系统里运行

SOS c#开发的程序怎么才能在win mobile 2003 系统里运行…

查看全部问答>

STM32的两个.bin文件如何合并?

                                 STM的两个.bin文件,一个是用于IAP的,一个是用户程序,想将这两个.bin文件合并为一个,然后烧写到芯片中。有什么 ...…

查看全部问答>

我想把fpga的烧录和调试口合成一个,不知道有没有这电路,高手们请教啊

我想把fpga的烧录和调试口合成一个,不知道有没有这电路,高手们请教啊…

查看全部问答>

详解:一体化监控摄像机市场竞争点到底在哪

对于一体化摄像机,一直以来有几种不同的理解,譬如:一体化半球摄像机、一体化球型摄像机、一体化云台摄像机、镜头内嵌型一体机。       有指半球型一体机、快速球型一体机、结合云台的一体化摄像机和镜头内建的一体机。严格 ...…

查看全部问答>