自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

转载 HFSS画图中的sweep功能

Sweep 主要功能是将一个平面按一定规则变换为一个实体 Sweep Axis:一般用于做回转体,例如用一个三角型平面Sweep为一个圆锥体; Sweep Vector:一般用于将一个平面按一个矢量Sweep 为一个实体,可将一个面做成一个有厚度的实体; Sweep Path:一般用于将一个平面按一个曲线(事先已做好)Sweep 为一个实体,如做螺旋线。

2016-08-23 15:27:35 15349

转载 几种介质的英汉对照

2016-08-23 07:39:45 380

转载 HFSS画helix和spiral

画一个圆面,作为螺旋线的截面(即圆面的直径代表线的粗细),然后选中该圆面,点击“draw helix”,画一条直线作为螺旋线的轴线,轴线到圆面的圆心距离为线圈半径,再设置线圈匝间距和匝数等参数即可,但需要注意的是轴线和圆面必须在同一个平面内。参数设置好后点击“OK”,完成绘制,结果图如下:

2016-08-22 21:22:33 12354

原创 uCOS-III开关中断进出临界区的三个宏

* 1. 临界区解释:* 代码的临界短也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许* 任何中断打入。为确保临界段代码的执行不被中断,在进入临界段之前必须关中断,而临界段* 代码执行完后,要立即开中断。* 2. uCOS-III中有两种进入临界区方式和一种开关中断方式。下面简单说明:* 注意,临界区的处理方式采用的方式3,即CPU_CRITICAL_ME

2016-08-21 16:42:33 4150

转载 f3 RTC 例子

这两天在搞STM32F303RE的RTC,遇到点问题,求各位大神帮忙看看。情况是这样的:RTC中设置当前时间为 15年05月31日,星期日(7),15:50:40,1、开weakup中断,每秒钟来一次中断,用串口输出当前时间值;2、设置闹钟A在 星期日 15:50:45,并开中断,这样程序运行5秒之后就会产生闹钟A中断,在中断中输出”闹钟A“和当前时间问题来了,当单

2016-08-18 17:31:26 1601

转载 f4 rtc例子2

比较F1的片子对于F4的RTC来说有很大提升,F4的RTC提供了日历时钟和两个可编程闹钟中断,一个周期性可编程唤醒标志。这样很方便设置系统时间,并不会像F1的RTC那样要自己计算年月日时分秒。F4的RTC是一个独立的BCD定时计数器,系统可以自动将月份天数补偿为28、29(闰年)、30、31天。并且还可以进行夏令时补偿。由此可见RTC,下面贴出代码方便以后查看(这里特别提一下RTC_Ala

2016-08-18 17:06:59 1042

转载 stm32f4 RTC例子

手册中注意几个地方:RTC_SetAlarm() :The Alarm register can only be written when the corresponding Alarm is disabled (Use the RTC_AlarmCmd(DISABLE)).   All RTC interrupts are connected to the EXTI co

2016-08-18 16:45:34 2478

转载 STM32L151内部RTC时钟

STM32L151内部RTC时钟STM32L151系列CPU内置低功耗RTC日历。RTC时钟源可以是LSE、LSI、HSE。为了降低功耗,预分频器被分成两个预分频器。一个7为的异步预分频器,一个13位同步预分频器。Fclk=32768/[(PREDIV_S+1)*(PREDIV_A+1)]void RTC_Config(void) {RTC_Init

2016-08-18 15:33:04 9808

转载 stm8L的rtc代码

CLK_LSEConfig(CLK_LSE_ON);while (CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);

2016-08-18 15:28:36 3308

转载 f4的待机模式和唤醒代码

STM32 Standby 低功耗模式示例1.  基本流程1)  初始化 RTC2)  配置外部中断(不是必需的)3)  设置 Alarm 时间4)  进入 Standby2.  几个需要注意的问题1)  从 Standby 退出后,代码将重新运行,相当于执行了软复位。其实也容易理解,因为进入 Standby 后,内核的所有功能都已经停止(断电) ,RAM 内的所有

2016-08-18 14:31:30 1391

转载 rtc同步分频异步分频

RTC同步分频系数,必须先设置同步分频,再设置异步分频,Frtc=Fclks/((Sprec+1)*(Asprec+1))

2016-08-18 13:10:50 4346

转载 f4 外部中断的例子同f1略有不同

1.使能SYSSCFG和对应GPIO时钟   RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE);2.配置对应GPIO为输入模式        GPIO_InitStructure.GPIO_Mode =GPIO_M

2016-08-18 10:42:01 835

转载 STM32F1外部中断的使用

STM32F1外部中断的使用中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。今天就将来探讨一下关于STM32中的中断系统。1 基本概念ARM Coetex-M3内核共支持256个中断,其中16个内部中断,2

2016-08-18 10:06:33 4946 1

转载 stm32f4时钟

由SYSCLK生成AHB时钟(即:HCLK)

2016-08-18 08:44:05 431

转载 RTC(实时时钟)和BKP(备份寄存器)

RTC:   RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。   RCC_BDCR:备份域控制寄存器。其LSEON、LSEBYP、RTCSEL和RTCEN位处于备份域,在复位后处于写保护状态,只有在电源控制寄存器(PWR_CR)中的DBP位置 1 后才能对这些位进行改动;这些位只能由备份域复位清除。   备份域复

2016-08-17 18:50:06 17631 1

转载 stm32 3种低功耗模式

STM32的低功耗模式有3种:1)睡眠模式(CM3内核停止,外设仍然运行)2)停止模式(所有时钟都停止)3)待机(standby)模式(1.8V内核电源关闭)从待机模式唤醒后的代码执行等同于复位后的执行进入Standby模式后,只能有Wake-up脚和RTC唤醒,特别是唤醒后,程序将从最开始运行,也就是相当于软件复位。

2016-08-17 17:32:47 16263

转载 ucos和低功耗

MCU实现低功耗本质而言便是停止MCU工作,通过中断的方式重新唤醒MCU,这些中断可以包括外部IO中断,UART接收中断,定时器中断等等。如果结合嵌入式操作系统,可以在空任务或者空任务钩子函数中进入低功耗模式,在系统滴答时钟中断服务函数中重新回到正常工作模式。利用操作系统进入和退出低功耗模式,需要熟悉嵌入式操作系统的空任务和系统滴答时钟中断,500ms一次的定时器中断唤醒一次可以吗?

2016-08-17 17:22:24 3004 1

转载 I2C操作

http://blog.csdn.net/xukai871105/article/details/15028117

2016-08-17 16:47:31 380

转载 osiii中OS_CRITICAL_ENTER和CPU_CRITICAL_ENTER关系

osiii的系统函数中的临界代码有的用CPU_CRITICAL_ENTER();有的用OS_CRITICAL_ENTER();CPU_CRITICAL_ENTER是真的关掉中断而OS_CRITICAL_ENTER()要看#define OS_CFG_ISR_POST_DEFERRED_EN 这个选项------------------------------------

2016-08-17 16:01:46 5600

转载 uC/OSIII时钟节拍处理过程

uC/OSIII时钟节拍处理过程 时钟节拍涉及到的函数调用过程:从main开始,创建了第一个任务AppTaskStart,在其一开始执行时,对BSP和CPU进行初始化,调用BSP_CPU_TickInit()函数;该函数定义在bsp文件夹下的bsp.c文件中,该函数先读取时钟频率,然后按OSCfg_TickRate_Hz值计算应该为CM3的systick定时器设置的

2016-08-17 11:13:03 2696

转载 OS_OPT_POST_1 OS_OPT_POST_ALL

OS_OPT_POST_1:当前任务只想给一个任务(最高优先级的)发信号;OS_OPT_POST_ALL:给所有等待该信号量任务发信号;

2016-08-17 09:54:50 1778

转载 osiii运行状态图

2016-08-16 18:47:22 285

转载 osiii的调度点

调度点1、释放信号量或者发送消息,也可通过配置相应的参数不发生任务调度。 2、使用延时函数OSTimeDly()或者OSTimeDlyHMSM()。 3、任务等待的事情还没发生(等待信号量,消息队列等)。 4、任务取消等待。 5、创建任务。 6、删除任务。 7、删除一个内核对象。 8、任务改变自身的优先级或者其他任务的优先级。 9、任务通过调用OSTaskS

2016-08-16 18:21:05 401

转载 osIII任务同时等待多个内核对象

前面我们讲过都是等待单个内核对象,包括:信号量、互斥信号量、消息队列和事件标志组。在UCOS–III中允许任务同时等待多个信号量和多个消息队列,也就是说,UCOS–III不支持同时等待多个事件标志组或互斥信号量。 一个任务可以等待任意数量的信号量和消息队列,第一个信号量或消息队列的发布会导致该任务进入就绪态。一个任务可以调用函数OSPendMulti()函数来等待多个对象,并且可以

2016-08-16 17:19:07 1078

转载 usosiii中OS_CRITICAL_ENTER() 有两种define含义

#if OS_CFG_ISR_POST_DEFERRED_EN > 0u                             /* Deferred ISR Posts ------------------------------ */                                                                 /* Lock the s

2016-08-16 16:13:24 2689

转载 ucosiii任务内建消息队列

任务内建消息队列——OSTaskQ???()一、知识背景实际应用中,多个任务同时等待一个消息队列的情况很少见,也就是说OSQ???()用的并不多,因此,在uC/OS-III 中,每一个任务都有其内建的消息队列。用户可以通过外部消息队列直接发送消息给任务。 这个特性不仅简化了代码, 还提高了效率。如下示意图, uC/OS-III 中与任务消息队列相关的服务都是

2016-08-16 15:12:55 4904 1

转载 理解osIII中的消息队列

在uC/OSIII中没有邮箱这个概念,而是统一合并到了消息队列MSG_Q。因为消息队列可以看作是很多邮箱的集合,邮箱只是包含单个消息的消息队列。在分析消息队列之前,必须要对消息的数据结构做一个彻底的分析。消息队列对象和其他内核对象一样,它的结构定义很简单:下面看一下消息队列的结构体,记住这个结构体名字叫OS_Q:struct os_q { /* Message Queue */

2016-08-16 14:32:42 2860 2

转载 ucosiii消息队列实例

消息队列实例:1.4.1 创建创建一个可以容纳10个消息的全局消息队列.OS_Q        Main_Task_Q;OSQCreate(&Main_Task_Q,"Main_Task_Q",10,&err);1.4.2 挂起将任务挂起等待消息,以阻塞方式等待消息来为止.OS_MSG_SIZE nMsgSize = 0;u8 *pM

2016-08-16 13:16:48 3121

转载 IIC

物理总线I2C总线由两条线路组成,SCL和SDA。SCL是用来将所有数据传输同步的时钟线路,而SDA是实际的数据线路。还需要第三条线路,即普通接地,不过通常不被提及。由于两条线路都是“开漏”驱动器,它们都需要到电源线路的上拉电阻,这样的话,输出在无运行期间保持在高电平。对于MSP MCU应用来说,电源电压应该与MSP MCU的Vcc相匹配。传统上,上拉电阻器的值为4.7kΩ,不过这个值的范围可

2016-08-16 10:59:00 481

转载 μC/OS-Ⅲ系统的资源管理-临界区共享

一、各种资源管理方法简介       μC/OS-Ⅲ系统中提供了一些基本方法用于管理共享资源(典型的共享资源有:变量、数据结构体、RAM中的表格、IO设备中的寄存器等)。资源共享方法名称及适用范围如下表所示。资源共享方法适用范围关中断、开中断当访问共享资源的时间很短以至于方位共享资源所花的时间小于μC/OS-Ⅲ关中断时间时

2016-08-16 10:53:46 1349

转载 μC/OS-Ⅲ系统的中断管理

μC/OS-Ⅲ系统的中断管理一、典型的μC/OS-Ⅲ中断服务程序解析μC/OS-Ⅲ系统中典型有内核参与中断服务程序示例如下:MyISR:                                                                 (1)       Disable all interrupts;              

2016-08-16 10:18:54 830

转载 μC/OS-Ⅲ系统的任务切换和任务调度

μC/OS-Ⅲ系统的任务切换和任务调度一、任务切换         在操作系统中当任务需要从一个任务切换到另外一个任务时,要将当前任务的现场保存到当前任务的堆栈中(当前任务现场主要指CPU相关寄存器),然后回复新任务的现场并执行新任务。这个叫做上下文切换(context switch),也可以叫任务切换。        上下文切换会给系统带来一定的负担。CPU寄存器越多

2016-08-16 10:05:27 2215

转载 临界段临界区

临界段代码(critical sections),也叫临界区(critical region),是指那些必须完整连续运行,不可被打断的代码段。μC/OS-Ⅲ系统中存在大量临界段代码。采用两种方式对临界段代码进行保护:关闭中断、给调度器上锁。两种临界段代码保护功能均通过宏定义实现。      对于中断处理程序和任务都会访问的临界段代码,必须使用关中断的方式进行保护;对于仅由任务访问的临界段代

2016-08-16 09:58:08 1182

转载 μC/OS-Ⅲ系统中的任务种类及基本状态

μC/OS-Ⅲ系统中的任务种类及基本状态在μC/OS-Ⅲ系统中,任务自身一共有五种状态。 1、休眠态       调用函数OSTaskCreate()创建任务后,任务就可以接受μC/OS-Ⅲ的管理。处于休眠态的任务代码实际上已经写入代码空间中了,但是μC/OS-Ⅲ还不知道它的存在。当不在需要μC/OS-Ⅲ管理某个任务时,用户可以调用任务删除函数OSTaskDel()来删

2016-08-16 09:56:40 1529

转载 μC/OS—III为缩短中断关闭时间作出的改进

引言    μC/OS—III是一款全新的实时内核,源于世界上流行的实时内核μC/OS—II。较μC/OS—II,μC/OS—III做了很多改进。其中,很重要的一点就是为了缩短中断关闭时间作出的改进。本文将深入分析为什么这些改进能够使得μC/OS—III的实时性能得到提升。1 中断简介    所谓中断,其实就是一种硬件机制,用于通知CPU有一个异步事件发生了。由于μC/OS—III

2016-08-16 09:11:55 1191

转载 uCOS-II任务调度过程

uCOS-II任务调度过程ucos-II是基于任务优先级抢占式任务调度法的,就是内核在管理调度时,调用任务切换函数(一般为SSched()),在该函数中将此时已处于就绪状态(条件一)并且为最高优先级(条件二)的任务的保存于其栈中的相应信息压入cpu寄存器中(软中断完成),然后cpu开始运行该任务的代码。   内核是何时进行任务调度的呢?虽然uC/OS-II是可被剥夺资源的内核(高优先级可强

2016-08-15 22:23:49 11330 1

转载 uc iii的一些领悟

任务堆栈:存储任务中的调用的函数、局部变量、中断服务程序和CPU寄存器的值。全局变量的保护:1.如果只在一个任务中写(或只有一个数据),而在其他任务中只是读取,则可以不用互斥型信号量,最多会造成读取的数据未被完全写完。2.如果全局变量在多个任务中写,则需要用互斥型信号量保护,这样当有任务申请到互斥型信号量(保护不可重入的程序段)写数据时,其他任务的同一个互斥型信号量必须等待上一个任

2016-08-15 22:05:54 1388

转载 uC/OS-III 函数整理

学uC/OS-III的时候 觉得这些常用的函数找起来太麻烦,便整理在一起,方便复制粘贴用。 更改任务优先级void OSTaskChangePrio(  OS_TCB  *p_tcb,      //需要更改优先级的任务函数名称。可以为空,即改变当前任务优先级。OS_PRIO  prio_new,  //需要更改的新优先级。不能为0和 大于或等于OS_CFG_PRI

2016-08-15 21:39:47 996

转载 ucos 多个任务等待一个信号量

一个例子  前提:有三个任务,优先级为4、5、6,并且优先级最低的最先运行,同时三个任务都会使用同一个信号量,信号量初始值为1.  第1步:信号量被创建,cnt=1,这时候任务就绪列表为空,信号量等待列表为空。  第2步:任务6开始执行,试图获得信号量由于cnt为1,所以会得到信号量得到后cnt减一变为0,这时候任务就绪列表为6,信号量等待列表为空。

2016-08-15 16:08:39 3295

转载 CUOS优先级翻转反转—互斥信号量

一. 任务优先级反转的概念当任务以独占方式使用共享资源时,会出出低优先级任务先于高优先级任务而被运行的现象,这就是所谓的任务优先级反转。例如:1. 任务A和任务C都要使用同一共享资源S,现在假设任务A和任务B都在等待与各自任务相关的事件发生而处于等待状态,而任务C正在运行,且在t1时刻取得了信号量的并开始访问共享资源S。2. 如果在任务C使用共享资源S过程中的t

2016-08-15 12:00:07 1195

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除