一、functions for handling system time

clock_time_t clock_time(void);//return the current system time in clock ticks

unsigned long clock_seconds(void);//return the system time in seconds

void clock_set_seconds(unsigned long ec);//set the value of the platform seconds


这些函数都是platform dependent的,我们是在stm8中实现的。


#if USE_RTC_CLK

#if USE_LSE  // 32768Hz

#define CLOCK_CONF_SECOND 1024

#else        // 38000Hz

#define CLOCK_CONF_SECOND 1000

#endif

#else

#define CLOCK_CONF_SECOND 1024

#endif

typedef unsigned long clock_time_t;


/**

 * A second, measured in system clock time.

 *

 * hideinitializer

 */

#ifdef CLOCK_CONF_SECOND

#define CLOCK_SECOND CLOCK_CONF_SECOND

#else

#define CLOCK_SECOND (clock_time_t)32

#endif


其中我们的clock_time_t是unsigned long型的,在stm8中unsigned long是32bit,最大数值是4294967295。


The number of clock ticks per second is specified with the constant CLOCK_SECOND.


CLOCK_SECOND 按1024来算,clock_time函数wrap around的时间是:


4294967295/1024/(60*60*24*365) = 0.133年


clock_seconds函数wrap aound的时间是:


4294967295/(60*60*24*365) = 136.2年


The system time starts from zero when the Contiki system starts.


二、functions for blocking the CPU


/**

 * Wait for a given number of ticks.

 * param t   How many ticks.

 *

 */

void clock_wait(clock_time_t t);


/**

 * Delay a given number of microseconds.

 * param dt   How many microseconds to delay.

 *

 * note Interrupts could increase the delay by a variable amount.

 */

void clock_delay_usec(uint16_t dt);


These functions are normally only used in low-level drivers where it sometimes is necessary to wait a short time without giving up the control over the CPU.


The function clock_init() is called by the system during the boot-up procedure to initialize the clock module.


main函数:


int

main(void)

{

  reset_sr = RST->SR;

  RST->SR = 0xFF;


  clock_init();


  leds_init();

  leds_on(LEDS_GREEN);

  HALT_LED_ON();


  rs232_init(RS232_PORT_0, USART_BAUD_9600, USART_PARITY_NONE);


  node_id_restore();

  node_init();


  process_init();


  process_start(&etimer_process, NULL);


  ctimer_init();


略……


  return 0;

}


三、Porting the Clock Module

The clock module is platform dependent and is implemented in the file clock.c. Since the clock module handles the system time, the clock module implementation usually also handles the notifications to the etimer library when it is time to check for expired event timers.


具体相关代码如下:


if(etimer_pending() && etimer_next_expiration_time() <= current_clock) {

    etimer_request_poll();

  }

关键字:Contiki  clock模块  STM8 引用地址:Contiki clock模块

上一篇:IAR FOR STM8S 错误 An error occurred while retrieving GDI features: gdi-error
下一篇:STM8S103内存详析

推荐阅读

近日,借中国科学院量子信息重点实验室-问天量子-泰克科技三方成立“量子信息联合创新平台”之际,EEWORLD专访了中科院院士、量子信息学科带头人郭光灿,郭光灿院士就量子信息技术的基本现状,国内外量子信息技术的生态环境等方面问题进行了阐述。郭光灿院士郭光灿院士其人郭光灿,中国科学院院士,中国科学技术大学教授,中国科学院量子信息重点实验室主...
据外媒报道,越来越多的现代化乘用车、货车和轻型商用车都配备了驾驶辅助系统(DAS),以通过摄像头系统和雷达传感器探测危急情况。DAS系统可以向驾驶员发送警报,并在危急时刻进行干预。因此,一旦此类系统完成修正或维护任务,汽车车间就必须对其进行校准。为了更加容易完成校准,博世(Bosch)宣布推出一种通用型、基于计算机的校准和调整装置 - DAS...
集微网9月23日消息,在中国创新创业成果交易会启动仪式暨未来科技峰会上,高通公司中国区董事长孟樸围绕“5G+AI赋能数字化未来”发表了主题演讲,分享了对行业合作和产业创新的观察和展望。孟樸表示,5G是过去30多年无线通信技术部署最快的一代技术,它不仅能给大家提供更好的用户体验,更能够给各行各业都带来数字化转型的全新机遇。而在5G快速发展的同时...
  众所周知,中国是当今石油消费增长最快的国家之一。自2002年来,我国的石油消费量就开始逐渐远超日本,成为了除美国外的世界第一大石油消费国。  中国能源研究会发布的《中国能源发展报告》提到,展望当今的中国石油消费结构,发现工业消费所占比重最大,并且在未来的一段时间内会持续上升。在过去的“十二五”期间,中国经济的增长速度稳步上升,且...

史海拾趣

问答坊 | AI 解惑

单片机在智能电饭煲中的应用

1 引言 目前,市场上的电饭煲大部分采用机械式或者是采用固定功率的方式加热,能源利用率低,功能单一,难以满足人们日益增长的生活需求。因此,开发功能齐全,安全可靠的微电脑电饭煲是非常用必要的。电饭煲从机械式原理到现在的智能电饭煲,期间经历了 ...…

查看全部问答∨

写给DSP初学者们

数字化的时代已经来临,对DSP专业人才的需求也越来越大,如今DSP技术和DSP应用已经成为当今嵌入式系统应用领域中最热门的技术,是高校、科研院所和高新技术企业的DSP软件、硬件开发人员的新的课题。很多高校开设了DSP专业,很多相关专业也增设了DSP ...…

查看全部问答∨

哥们上一个“光时域反射仪”的资料

光时域反射仪,也有人叫它“OTDR”…

查看全部问答∨

嵌入式老问题

老问题:究竟在嵌入式中,C语言更有前途还是C++?…

查看全部问答∨

请问wince串口接收汉字乱码,如何处理?谢谢!

我将arm通过串口连接在pc上,通过串口发送数据给arm,数字没问题,汉字传送后接收的是乱码或空心方块。请高手们帮助解决。…

查看全部问答∨

USCI模块的应用

谁有USCI模块的详细资料啊? 谢谢各位了。…

查看全部问答∨

旋转编码器并行信号

并行输出             多少位(码道)绝对值编码器就有多少根信号电缆,每根电缆代表一位数据,以电缆输出电平的高低代表 1 或 0,物理器件与增量值编码器相似 ,有集电极开路 PNP,NPN型、差分驱动、推 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved