STM8L151C8单片机学习例程(15)——Contiki_OS_LED

发布者:心怀感恩最新更新时间:2022-01-06 来源: eefocus关键字:单片机 手机看文章 扫描二维码
随时随地手机看文章

STM8L_15_Contiki_OS_LED:

1.Contiki:Contiki OS所需文件

2.User:工程及main文件

3.Hardware:LED,CLK,Wag

4.STM8L15x_StdPeriph_Driver:STM8自带库文件

5.Debug:hex文件存放于EXE文件夹

6.readme: 使用Contiki OS 进行LED闪烁

Contiki OS仅需2KB RAM和40KB ROM,是开源的、高可移植的、支持网络的多任务操作系统,包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈,很适合LoRa、NB-IoT等无线传感器网络。


这里用仅仅Contiki实现LED闪烁。


/**

******************************************************************************

*   @file      main.c

*   @author    Alex——小白

*   @version   V1.0

*   @date      2019.5.1

*   @brief     LED Blink By Contiki OS

*   @store     有家Proteus仿真店子

*   @Link      https://shop484534014.taobao.com/

*   @Email     844545015@qq.com

******************************************************************************

*   @attention  All Rights Reserved  

**/

#include

#include

#include "contiki.h"

#include "etimer.h"

#include "stm8l15x.h"

#include "LED.h"

#include "CLK.h"

PROCESS(blink_process,"Blink");             //申请一个进程

AUTOSTART_PROCESSES(&blink_process,);            

PROCESS_THREAD(blink_process,ev,data)       //LED0 Blink/s 函数,是进程的方法

{

    PROCESS_BEGIN();                        //进程开始

    while(1)                                //一个进程就是一个死循环

    {

        static struct etimer et;            //申请一个etimer结构体,切勿去掉static    

        etimer_set(&et,CLOCK_SECOND);

        PROCESS_YIELD();                //进程自我阻塞,当外部消息(此处为定时器中断)刺激才触发

        if(PROCESS_EVENT_TIMER == ev)   //判断消息是否etimer的1s超时

        {

            LED1_Toggle();

            LED0_Toggle();

            etimer_restart(&et);        //重启et,为下1s定时

        }

        

    }

    PROCESS_END();                          //进程结束

}

void main(void)

{

    

    /* Initialize hardware */

    CLK_HSI_Config(CLK_SYSCLKDiv_1);        //CLK init

    LED_Init();                             //LED init

    clock_init();                           //Systerm Tick

    /* EXPLAIN: enable INT before initialize process! */

    enableInterrupts();

    

    /* Initialize contiki system */  

    process_init();

    process_start(&etimer_process, NULL); 

    autostart_start(autostart_processes);

    

  while (1)

  {

        while (process_run() > 0)

        {

            ;

        }

  }

}

关键字:单片机 引用地址:STM8L151C8单片机学习例程(15)——Contiki_OS_LED

上一篇:Microchip发布具有强大编程和调试功能的新型在线仿真器
下一篇:STM8L151C8单片机学习例程(14)——LoRa_RX+TX

小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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