历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2020年10月12日 | ucos-ii示例6:消息量集测试

2020-10-12 来源:eefocus

环境:


主机:WIN8


开发环境:MDK4.72


ucgui版本:3.90


ucos版本:ucos-ii


mcu: stm32f103VE




说明:


本示例中task2设置信号量集的最后2位为1,task1读取最后2位,发现是1则显示




源码:



#define TASK_STK_SIZE 512

/*********************************************************************

* 静态函数

**********************************************************************/

 

static void task_start(void *pdata);

static void task1(void *pdata);

static void task2(void *pdata);

 

/*********************************************************************

* 静态变量

**********************************************************************/

 

/*********************************************************************

* 任务堆栈空间

**********************************************************************/

 

static OS_STK Task_Start_Stk[TASK_STK_SIZE];

static OS_STK Task1_Stk[TASK_STK_SIZE];

static OS_STK Task2_Stk[TASK_STK_SIZE];

 

/*********************************************************************

* 信号量集

**********************************************************************/

 

OS_FLAG_GRP *Semaphore;

 

/*********************************************************************

* 消息队列数组

**********************************************************************/

 

void *Msg_Group[10];

 

char Msg_Arr[10][30];

uint8_t Index_Msg_Arr = 0;

 

/*********************************************************************

* 函数

**********************************************************************/

 

int main(void)

{

//初始化内核

OSInit();

//创建任务

OSTaskCreate(task_start,(void *)0,Task_Start_Stk + TASK_STK_SIZE - 1,10);

//启动任务

OSStart();

}

 

/*********************************************************************

* 任务函数

**********************************************************************/

 

static void task_start(void *pdata)

{

uint8_t err = 0;

//载入世界

world_load();

//设置背景色

GUI_SetBkColor(0xb07c17);

GUI_Clear();

GUI_SetColor(GUI_BLACK);

//信号量集初始化为0

Semaphore = OSFlagCreate((OS_FLAGS)0,&err);

//新建任务

OSTaskCreate(task1,(void *)0,Task1_Stk + TASK_STK_SIZE - 1,11);

OSTaskCreate(task2,(void *)0,Task2_Stk + TASK_STK_SIZE - 1,12);

while(1)

{

OSTimeDlyHMSM(0,0,3,0);

}

}

 

static void task1(void *pdata)

{

char str[30] = {0};

uint8_t err = 0;

 

while(1)

{

//等待信号集满足条件

OSFlagPend(Semaphore,(OS_FLAGS)0x3,OS_FLAG_WAIT_SET_ALL | OS_FLAG_CONSUME,0,&err);

//显示

sprintf(str,"task1 time:%ds",OSTimeGet());

GUI_DispStringHCenterAt(str, 120, 5);

WM_Exec();

OSTimeDlyHMSM(0,0,1,0);

}

}

 

static void task2(void *pdata)

{

char str[30] = {0};

uint8_t err = 0;

 

while(1)

{

//将末两位置1

OSFlagPost(Semaphore,(OS_FLAGS)0x3,OS_FLAG_SET,&err);

//将最后1位置1

//OSFlagPost(Semaphore,(OS_FLAGS)0x1,OS_FLAG_SET,&err);

//显示

sprintf(str,"task2 time:%ds",OSTimeGet());

GUI_DispStringHCenterAt(str, 120, 20);

WM_Exec();

OSTimeDlyHMSM(0,0,3,0);

}

}


推荐阅读

史海拾趣

FLEX LTD公司的发展小趣事

Flex Ltd.(伟创力国际有限公司),作为全球知名的电子制造服务(EMS)供应商,自1969年在美国硅谷成立以来,经历了多个关键的发展阶段和故事。以下是五个与其发展紧密相关的事实性故事:

1. 全球布局的开端:新加坡建厂

1981年,Flex Ltd.在新加坡建立了其第一个海外工厂,这一举措标志着公司正式走出美国,开启了全球化布局的序幕。新加坡工厂的建立不仅为Flex带来了更低的制造成本,还使其能够更贴近亚洲市场,为客户提供更快捷的服务。这一战略性的地理选择为Flex后续在全球范围内的扩张奠定了坚实基础。

2. 纳入纳斯达克上市

随着业务的不断扩展和实力的增强,Flex Ltd.于某年成功在纳斯达克(NASDAQ)上市。这一里程碑事件不仅为公司筹集了更多的发展资金,还极大地提升了其在国际市场上的知名度和影响力。上市后的Flex更加注重财务透明度和公司治理,为股东创造了长期价值。

3. 与华为的合作与风波

Flex与华为的合作曾是业内的佳话。特别是在2018年,Flex承接了华为价值高达25亿美元的代工订单,这一合作极大地推动了Flex的业务增长。然而,随着2019年美国商务部将华为列入“实体清单”,Flex被迫在全球范围内停止与华为的合作,并扣押了华为的物资和设备。这一事件引发了广泛争议,对Flex的声誉和客户关系造成了一定影响。尽管后续双方进行了多轮谈判,但这一风波仍成为了Flex发展历程中一个不可忽视的章节。

4. 供应链的数字化转型

Flex一直致力于通过数字化转型来提高供应链的效率和透明度。公司发起了一项全球计划,旨在通过EDI(电子数据交换)等先进技术实现采购及付款交易的完全自动化。这一举措不仅降低了成本、减少了错误,还提高了供应链的响应能力和可见性。例如,Flex与D公司的EDI项目合作就是其数字化转型的一个成功案例,展示了Flex在推动供应链自动化方面的决心和实力。

5. 环保与社会责任

Flex在快速发展的同时,也积极履行其环保和社会责任。公司遵循欧盟的RoHS和WEEE等环保指令,致力于在电子产品设计和制造过程中减少有害物质的使用,并推动电子废弃物的回收和处理。此外,Flex还通过专项拨款、财务捐助、自愿者行动等多种形式加大对全球社会的支援和投入力度,关注灾难赈济、医疗援助、教育、环保等领域。这些举措不仅提升了Flex的企业形象,也为其可持续发展奠定了坚实的基础。

Codeco Corporation Of Vermont公司的发展小趣事

在追求商业成功的同时,Codeco也积极履行企业社会责任。他们注重环保和可持续发展,在生产过程中采用环保材料和技术,减少对环境的影响。此外,Codeco还积极参与公益事业,为社会做出贡献。这些举措不仅提升了公司的社会形象,也赢得了员工和消费者的尊重与认可。


您可以根据这个框架,结合您对电子行业和Codeco Corporation Of Vermont的了解,撰写具体的故事内容。请注意,这些故事应基于事实或合理的推测,避免涉及未经证实的信息或夸大其词的描述。

台湾第一电阻(Firstohm)公司的发展小趣事
电冰箱不制冷可能由多种原因引起,包括电源问题、温度设置不当、制冷系统故障等。首先,检查电源插头是否牢固插入插座,并确保插座有电。其次,检查温度设置是否正确,冷藏室温度一般应设置在2-4摄氏度,冷冻室温度应设置在-18摄氏度左右。如果以上均正常,可能是制冷系统出现故障,如压缩机故障、制冷剂泄漏等,需要请专业人员进行检查和维修。
ELM [ELM Electronics]公司的发展小趣事

ELM始终将品质管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。同时,ELM还注重客户需求和反馈,不断优化产品和服务,以满足客户的个性化需求。这些举措使得ELM的产品在市场上享有很高的声誉和口碑,客户满意度持续提升。

广芯电子(BROADCHIP)公司的发展小趣事

在追求经济效益的同时,ELM也注重环保和可持续发展。公司积极采用环保材料和绿色生产工艺,降低生产过程中的能耗和排放。同时,ELM还积极参与环保公益活动,推动电子行业的绿色发展。这些举措不仅体现了ELM的社会责任感,也为公司的长期发展奠定了坚实的基础。

东通电子公司的发展小趣事

随着全球对环保和可持续发展的重视,东通电子也积极响应号召,推行环保生产。公司在2005年开始推行环保电容生产,并在2007年通过了ISO14001:2004环境管理体系认证。这一举措不仅提升了公司的环保水平,也为客户提供了更加环保、可靠的产品。

问答坊 | AI 解惑

WCDMA基站测试解决部署关键问题

随着奥运会的召开,第三代移动通信系统离我们的生活越来越近了,中国移动TD-SCDMA的试商用,使我们国人终于有机会在国内就可以享受3G给我们带来的基于高速率数据传输的各种服务;相信不远的将来,另外两种技术(WCDMA与CDMA2000)也将会走进我们的生 ...…

查看全部问答>

压电陶瓷

PZT-5A压电陶瓷直径12mm×高5mm的压电块能产生多大电压和电流?可以利用么?…

查看全部问答>

wince作为U盘的问题

今天实现了wince作为U盘的功能,不过插上后PC设别到了U盘,不过有一个问题是进不了U盘,提示需要格式化。 如果格式化了,那么我flash里面的程序不就没了,如何解决? 不知道是否跟flash的格式有关系。…

查看全部问答>

Target Server用串口调试的问题

板子只有一个串口,没有网络口。 开发机Target Server用串口和板子联系。下载程序等都没问题。 问题是devs一下,唯一的一个串口不见了。就算下载程序后关掉Target Server,板子上的串口也无法用在应用程序上。 各位大侠遇到过此类问题没,给点建 ...…

查看全部问答>

12864液晶中文资料

自己研究过了,很有指导作用…

查看全部问答>

内存不可读

*** error 65: access violation at 0x40011000 : no \'read\' permission …

查看全部问答>

技术男叫板称将笔记本改造成触屏很容易

  “小马哥”改装触摸屏走红引“技术男”叫板     本报讯 (记者申志民)花费190元,旧笔记本电脑可改装成PAD……近日,北京邮电大学大一学生马钧轶成功将笔记本改成触屏笔记本后,网友纷纷热赞(本报曾报道)。“小马哥”走红 ...…

查看全部问答>

艾睿-TI MCU技术研讨会的开发板大家收到没?

上个月去参加北京的艾睿合众达-TI MCU技术研讨会,会上说待会后将按提交的反馈表给参会者寄送开发板,不过,到现在我都没收到,不知道有没有朋友同样参加北京那场会收到开发板的?感觉艾睿这种公司不能骗人啊?…

查看全部问答>

请教一下关于msp430低功耗编程的例子

{初始化设置; while(1) { if(Power) { GetData();//采集数据 if(ucIfbrk==0) //采集无错数据转换 { DataChg(); DataSend();            //串口发送数据 UART0_Send_Byte(\'#\'); delay_ms(1000); } els ...…

查看全部问答>

请教下zigbee定位是如何实现的呢

zigbee用来定位是要设置成什么模式,api? rssi信号是从串口得来,还是某一管教? 得到的rssi信号是和中心的rssi吗?如果是和其它终端的rssi?如何识别是哪个终端的呢?…

查看全部问答>