单片机
东方青
这个作者很懒,什么都没留下…
展开
-
按键与外部中断
当用外部中断的方法实现按键的检测时,由于存在按键抖动,这样我们在按下按键时,会出现多次进入中断的现象,最好的解决办法是在程序中我们进行相应的处理:l void int_key() interrupt 0//外部中断1服务程序{EX0=0;//关外部中断1delay_ms(100);if(s1==0) //s1是外部中断对应的IO口{s1_nu转载 2013-04-10 19:55:17 · 1326 阅读 · 0 评论 -
ucos II 内核学习之三:任务调度
ucos II 内核学习之一 :任务调度 学校的教学方式多是先让你学原理,再应用它。Muc21则不喜欢这种方式,依然记得在学校枯燥无味地学一大堆理论,更郁闷的是不知道是应用在什么地方。 Mcu21喜欢先学会用它了,然后再去了解它的原理。对ucos II也一样,当我用过之后,再去看它的内核,或许理解起来会更容易。 实现任务切换,需要调用函数OSSched()。转载 2014-12-03 17:52:37 · 405 阅读 · 0 评论 -
ucos II 内核学习之四:任务延时函数
Ucos II 任务延时函数 编写过单片机程序的都知道,延时函数是经常被用到的。 在ucos II 里,系统也提供了这样的延时函数。一个是大众版的OSTimeDly(),一个是精致版的OSTimeDlyHMSM()。 萝卜青菜,各有所爱,随你怎么选。 这两者的区别是,OSTimeDly()的延时时间是以节拍数来衡量的,OSTimeDlyHMSM()的延时时间则转载 2014-12-04 09:00:08 · 464 阅读 · 0 评论 -
ucos II 创建第一个任务之一
Ucos II创建第一个任务 我们已经从远处欣赏过ucos II 的身材,现在可以近距离地欣赏Ucos II性感的局部了。 任务是什么?有一句话:CPU不同的时刻段总是在执行着优先级最高的任务。所以CPU总是在不同的任务间切换。任务好比linux中的进程。有c写过单片机程序的人是知道函数的.。在ucos II 世界里,任务就是一个大箩筐,框着一个或者好多转载 2014-12-04 10:06:49 · 395 阅读 · 0 评论 -
ucos II 内核学习之七:内存管理
Ucos II 内存管理 在mcu21的项目里,暂时还没用到内存管理。不过还是有必要学习一下的。 为了消除内存碎片,ucos II 把连续的大块内存按分区来管理。每个分区中包含有整数个大小相同的内存块。 类似每个任务对应一个任务控制块,每个事件对应一个事件控制块,ucos II里每个内存块也是对应一个内存控制块。内存控制块是一个数据结构,定义如下:转载 2014-12-04 09:50:00 · 466 阅读 · 0 评论 -
ucos II 内核学习之六:ucos II初始化及启动
ucos II内核学习之三:ucos II初始化及启动 以下是我项目中主函数的程序现在解释下程序编写的依据和实现过程。ucos II 里,在创建一个任务(或者调用其它系统服务之前),是需要先初始化系统的,初始化ucos II需要调用函数OSInit()。调用函数OSInit()的作用是什么?主要实现以下几个功能。1. 建立空闲任务及统计任务。2.转载 2014-12-04 09:40:59 · 474 阅读 · 0 评论 -
ucos II 内核学习之五:时钟节拍
ucos II 内核学习之二 :时钟节拍ucos II 里,时钟节拍就好比是人的心脏一样重要,。它对于CPU能顺利在各任务间切换有着至关重要的作用。Ucos II 需要用户提供时钟源,在muc21项目了,我使用了定时器0作为时钟源。使用时钟源有一个特别需要注意的地方:用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用OSStart()之后。Ucos II中的时钟节拍转载 2014-12-04 09:20:44 · 530 阅读 · 0 评论 -
ucos II 内核学习之二:任务控制块
前面的学习已经了解过任务控制块。知道任务在创建的时候,任务控制块会被初始化。任务控制块是一个数据结构,当任务的CPU使用权被剥夺时,ucos II用它来保存该任务的状态。当任务重新得到CPU使用权时,任务控制块能确保任务从当时被中断的那一点丝毫不差地继续执行。OS_TCBs全部驻留在RAM中。 任务控制块的定义程序如下所示: #if OS_TA转载 2014-12-03 15:07:01 · 607 阅读 · 0 评论 -
ucos II 内核学习之一:任务状态及任务控制块
ucos II 内核学习之一:任务状态及任务控制块一个任务被创建之后,可以处于以下五种状态之一。这五种状态分别是:1. 睡眠状态2. 就绪状态3. 等待状态4. 中断服务状态5. 执行状态下面简单介绍下各状态的含义及各状态切换的方法。 睡眠状态:睡眠态(DORM转载 2014-12-03 14:49:14 · 589 阅读 · 0 评论 -
ucos-ii任务状态介绍
一个任务通常是一个无限的循环。一个任务看起来像其它的C函数一样,有函数返回类型,任务返回类型必须定义为void型,有形式参数变量,但是任务是绝不会返回的。任务可以在一次执行完毕之后被删除,并不是任务代码被删除,只是内核不会再理会该任务的代码,该任务再也不能运行了。 RTOS内核控制下的任务状态装换上,在任一给定时刻,任务状态一定是在这六种状态之一。转载 2014-12-03 14:42:01 · 1035 阅读 · 0 评论 -
增强型N沟道场效应管(MOSFET)的电池反接保护电路
功率场效应管(MOSFET)典型应用电路 1.电池反接保护电路 电池反接保护电路如图9所示。一般防止电池接反损坏电路采用串接二极管的方法,在电池接反时,PN结反接无电压降,但在正常工 作时有0.6~0.7V的管压降。采用导通电阻低的增强型N沟道场效应管(MOSFET)具有极小的管压降(RDS(ON)×ID),如Si9410DY的RDS(ON)约为0.0转载 2015-01-06 17:30:07 · 1972 阅读 · 0 评论 -
Android 的启动流程
Android 的启动流程 Android 根文件系统启动过程。在Android系统启动时,内核引导参数上一般都会设置“init=/init”, 这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。init程序源码在Android官方源码的system/core/init中,main在init.c里。我们的分析就从main开始。ini转载 2015-01-06 17:33:42 · 380 阅读 · 0 评论 -
防反接保护电路
防反接保护电路1,通常情况下直流电源输入防反接保护电路是利用二极管的单向导电性来实现防反接保护。如下图1示:这种接法简单可靠,但当输入大电流的情况下功耗影响是非常大的。以输入电流额定值达到2A,如选用Onsemi的快速恢复二极管 MUR3020PT,额定管压降为0.7V,那么功耗至少也要达到:Pd=2A×0.7V=1.4W,这样效率低,发热量大,要加散热器。2转载 2015-01-06 17:27:57 · 630 阅读 · 0 评论 -
低功耗设计
与初学者谈低功耗设计(ZT 作者:沈洁) 降低功耗不光能够大大的节约电能还能简化电源部分的设计,甚至可以用于手持设备上面使用,这些都已经越来越成为未来产 品的设计方向了^_^ 1 降低功耗从MCU选型开始,一开始选型的时候就应该考虑选择低功耗的MCU比如MSP430一类的为低功耗设计的CPU^_^ 强烈不建议使用51一方面是因为51速度慢,另外一方面是因为51的IO是有上拉电阻的转载 2014-12-01 13:45:02 · 444 阅读 · 0 评论 -
IAR建立CC2530工程的设置问题及生成.hex文件 .
这篇是转载过来的,其实设置都差不多:利用IAR建完一个工程后,进行设置如下:这里以CC2430为例子,CC2530设置也差不多。 选择 Project 菜单下的Options 配置与 CC2430 相关的选项。1、General Options选项,按下图配置Target标签,选择Code model 和Data model,以及其它参数。 a、单击 Derivative转载 2014-11-02 14:57:16 · 824 阅读 · 0 评论 -
IAR for MSP430 关于添加自定义头文件的两种方法 .
IAR for MSP430 关于添加自定义头文件的两种方法上次编写关于430的程序还是在一年半前,再次使用时新版本的IAR5.31时发现又不会添加头文件了,想想当时用的时候也遇到过类似问题,最后也不知是如何解决的,在利用workspace栏添加时,倒也能添加,只是不再main分目录下,即便包含了xxx.h文件,编译时仍然会提示“can no find xxx.h”。于是在网上搜了一下有关I转载 2014-11-02 18:03:11 · 633 阅读 · 0 评论 -
AS3933唤醒帧解释
AS3933唤醒帧解释 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 现在在做一个基于AS3933的唤醒激活系统,分为A,B两个设备.A设备需要产生125KHz信号,B设备上有AS3933芯片,AS3933接收A设备产生的125KHz信号,然后激活唤醒MCU开始工作. AS3933的唤醒机制转载 2014-11-01 21:28:35 · 1310 阅读 · 1 评论 -
I2C串行总线的组成及工作原理
我对IIC总线的理解常用的串行扩展总线:I2C总线、单总线、SPI总线等。I2C串行总线的概述I2C总线是PHLips公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。I2C总线只有两根双向信号线:分别是:数据线SDA;时钟线SCLI2C总线通过上拉电阻接正电源,当总线空闲时,两根线均为高电平,连到总线上的任一器件输出的低电平都将使原创 2013-04-21 22:20:44 · 1205 阅读 · 0 评论 -
P沟道mos管作为开关的条件(GS >GS(TH))
P沟道mos管作为开关,栅源的阀值为-0.4V,当栅源的电压差为-0.4V就会使DS导通,如果S为2.8V,G为1.8V,那么GS=-1V,mos管导通,D为2.8V如果S为2.8V,G为2.8V,VGSw那么mos管不导通,D为0V,所以,如果2.8V连接到S,要mos管导通为系统供电,系统连接到D,利用G控制。那么和G相连的GPIO高电平要2.8-0.4=2.4转载 2015-01-06 17:32:57 · 1146 阅读 · 0 评论