摘要:
//p2.0 pwm1.1void ALS_Init(void) //初始化{ LPC_SC->PCONP |= (1PCLKSEL0 &= ~(3PCLKSEL0 &= ~(3PINSEL4 &= ~(0X03LPINMODE4 &= ~(0X03LPINMODE_OD2 &= ~(0X01TCR...
阅读全文
posted @ 2015-03-15 01:44
邓小俊
阅读(1446)
推荐(0)
摘要:
void wwdg_init(void){ LPC_SC->PCLKSEL0 |= (3WDCLKSEL &= ~(3WDCLKSEL |= (1WDCLKSEL |= (1WDTC = 0xffff;//设定重载值 LPC_WDT->WDMOD |= (1WDFEED = 0xaa; LPC_WD...
阅读全文
posted @ 2015-03-15 01:42
邓小俊
阅读(1165)
推荐(0)
摘要:
SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机。在数据传输过程中总线上只能有一个主机和一个从机通信。在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送一帧字节数据使用代码如下void SpiInit(SPI_SPEED speed){ u8 div=...
阅读全文
posted @ 2015-03-15 01:41
邓小俊
阅读(1130)
推荐(0)
摘要:
IIS是飞利浦公司定义的一种用于音频传输的数字总线,LPC1768支持该总线, I2S接口为一条3线串行总线,含有1根数据线、1根时钟线和1根字选择信号线。基本的I2S连接具有一个主机(其总是为主机)和一个从机。LPC1700系列Cortex—M3微控制器的I2S提供了彼此独立的发送和接收通道,每个...
阅读全文
posted @ 2015-03-15 01:39
邓小俊
阅读(506)
推荐(0)
摘要:
LPC1768在系统滴答定时器和通用定时器之外还引入了一个定时器,叫做重复定时器RIT,该定时器只能用于定时操作,带有一个中断,我个人的感觉,这似乎是为了延时函数设计的一个定时器那么使用该定时器时遵循什么流程?第一,打开时钟第二,我们要确定定时器从pclk分频数值,这要靠另外一个寄存器第三,先关闭定...
阅读全文
posted @ 2015-03-15 01:36
邓小俊
阅读(532)
推荐(0)
摘要:
LPC1768有三路IIC,其中IIC0支持高速模式和plus模式,另外两路是普通IIC,使用IIC的过程如下 首先依然是打开IIC时钟,同时打开GPIO时钟然后配置引脚为IIC功能另外,因为iic0支持plus结构,所以gpio控制的时候还有这个寄存器需要设置接下来设置IIC的高低电平占空比最后使...
阅读全文
posted @ 2015-03-15 01:34
邓小俊
阅读(1435)
推荐(0)
摘要:
Lpc1768内置有一个ad外设,该外设有八路复用输入,所以,可以同时接八路ad设备,同时还支持触发转换模式,由外部端口进行ad触发,ad转换完成之后可以产生中断 Lpc1768支持的转换模式有两种,分别会连续转换模式和软件单次转换模式,连续转换模式可以自动的按照我们选择的转换位进行ad的依次转换,...
阅读全文
posted @ 2015-03-15 01:31
邓小俊
阅读(2249)
推荐(0)
摘要:
Lpc1768内置了四个串口通讯模块,都是异步通讯模块,其中,串口0/2/3是普通串口通讯,串口1与 UART0/2/3 基本相同,只是增加了一个 Modem 接口和 RS-486/EIA-486 模式,不支持IrDA,我们今天以串口0来演示串口的使用. 首先,使用串口0要打开串口0的时钟然后要配置...
阅读全文
posted @ 2015-03-15 01:28
邓小俊
阅读(5573)
推荐(0)
摘要:
LPC1768的外部中断严格来说只有四个,分别是EINT0,EINT1,EINT2,EINT3,技术手册上有如下说明控制这四个外部中断靠以下寄存器这三个寄存器的0 1 2 3位分别代表中断的0 1 2 3,EXTINT寄存器表示中断是否发生,在发生中断的时候该寄存器会置位,可以通过写1清零,EXTM...
阅读全文
posted @ 2015-03-14 00:01
邓小俊
阅读(2221)
推荐(1)
摘要:
LPC1788通用IO口的控制包含了一些基本的组件,比如设置推挽输出,开漏输出,上拉电阻等,我们今天来看看. 首先使用GPIO要打开GPIO的系统时钟 LPC_SC->PCONP |= (1>第五章(87页~92页).//IO口操作宏定义#define BITBAND(addr, bit...
阅读全文
posted @ 2015-03-13 23:54
邓小俊
阅读(5430)
推荐(0)
摘要:
之前说了stm32的iap编程,今天天气真好,顺手就来说说lpc1788的iap编程(没看前面的请查看stm笔记下的内容) 首先是flash的算法,lpc1768并没有寄存器来让我们操作flash,他内置了iap的flash算法,在技术手册的525页有如下说明 其支持的iap命令有这些这...
阅读全文
posted @ 2015-03-13 23:46
邓小俊
阅读(4178)
推荐(0)
摘要:
Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片机复位离线的情况下编程,需要人工的干预,而iap则是用户自己的程序在运行过程中对User Fla...
阅读全文
posted @ 2015-03-13 23:34
邓小俊
阅读(13262)
推荐(4)
摘要:
Ucos2.86版本有一个任务调度的漏洞,该漏洞在2.88之后的版本已经修改过来了,今天我们来看看这个漏洞, 漏洞在官方2.88的文档中如下 这两个函数都是调度器函数,也就是说调度器有漏洞,但是看官方文档的说明,只有cortex-m3有这个bug,那我们就将2.88的代码和2.91的代码对比看看改...
阅读全文
posted @ 2015-03-10 00:26
邓小俊
阅读(958)
推荐(0)
摘要:
Ucos在任务调度中经常使用的技术为任务就绪表,在之前的文章中使用的例子是低于64个优先级的任务就绪表查找方法,现在ucos将任务扩展到256优先级之后,任务就绪表的查找也做了一定的修改,今天来讲讲 首先我们看任务就绪表的设置过程,当任务创建的时候需要设置一次任务就绪表,所以我们先看oscr...
阅读全文
posted @ 2015-03-10 00:23
邓小俊
阅读(1408)
推荐(0)
摘要:
在可剥夺性的内核中,当任务以独占方式使用共享资源的时候,会出现低优先级任务高于高优先级任务运行的情况,这种情况叫做优先级反转,对于实时操作系统而言,这是一场灾难,下面我们来说说优先级反转的典型环境. 我们假设有三个任务a,b,c,a优先级高于b,b优先级高于c,a和c都需要访问一个共享资源...
阅读全文
posted @ 2015-03-10 00:22
邓小俊
阅读(4091)
推荐(0)
摘要:
在实际的应用之中,一个任务经常需要等待多个信号量的同时生效,或者说任务需要根据多个信号量的组合作用的结果来决定任务的运行方式,为了实现这种多信号量组合的功能,ucos实现了信号量集的特殊结构. 信号量集的基础仍然是信号量,它如同一个多个信号量组成的与非门来构成逻辑结果控制任务的执行. 信号量...
阅读全文
posted @ 2015-03-10 00:20
邓小俊
阅读(1048)
推荐(0)
摘要:
应用程序中为了某种特殊需要,经常需要动态的分配内存,而操作系统的特质置一,就是能不能保证动态内存分配的时效性,也就是说分配时间是可确定的 Ucos提供内存分配功能,它将内存空间分为两级管理,将一块连续的内存空间分为若干个分区,每个分区单位又分成大小相同的若干个内存块,分区时操作系统的管理单位,...
阅读全文
posted @ 2015-03-10 00:17
邓小俊
阅读(3782)
推荐(0)
摘要:
之前说到事件,讲了事件,信号量和互斥信号量,还有一个队列没说,今天说说队列. 队列是用在任务之间传送多个消息的时候,a任务发送消息,b任务发送消息,然后c任务可以依次去提取出b和a传递的消息,不会造成系统的阻塞,他的实现结构如下在队列的实现中,也是使用事件ecb,OSEventType为OS_EV...
阅读全文
posted @ 2015-03-10 00:14
邓小俊
阅读(1200)
推荐(0)
摘要:
这一片谈谈关于ucos调度器的相关知识.ucos的调度器的实现主要靠一个函数OS_Sched该函数将调度器的行为分为了两个部分,第一是调度部分,第二是任务切换部分,如下void OS_Sched (void){#if OS_CRITICAL_METHOD == 3u OS_CPU_SR cpu_sr...
阅读全文
posted @ 2015-03-08 22:49
邓小俊
阅读(1876)
推荐(0)
摘要:
Ucos的事件分为时钟,信号量,互斥性信号量,消息队列,以及消息邮箱首先说信号量 信号量在ucos中的类型定义为OS_EVENT_TYPE_SEM,在任务控制块ecb中,主要是用到的是信号量计数器OSEventCnt,当有任务申请信号量的时候,如果信号量OSEventCnt的值大于0,则将OSEve...
阅读全文
posted @ 2015-03-08 22:47
邓小俊
阅读(1620)
推荐(0)
摘要:
Ucos为了任务之间的通讯定义了信号量,互斥性信号量,消息对象 消息队列等结构以及api,为了统一的管理这些同步,定义了一个结构叫做时间控制块OS_EVENT,如下 typedef struct os_event { INT8U OSEventType; void *OSEventPtr; INT1...
阅读全文
posted @ 2015-03-08 22:46
邓小俊
阅读(1121)
推荐(0)
摘要:
之前在ucos多任务切换中漏掉了一个变量,OSCtxSwCtr标识系统任务切换次数主要应该还是用在调试功能中Ucos系统初始化函数为OSInit(),主要完成以下功能全局变量初始化就绪任务表初始化空任务控制块初始化事件控制块链表初始化信号量集初始化存储器管理初始化Qs队列控制初始化系统空闲任务初始化...
阅读全文
posted @ 2015-03-08 22:45
邓小俊
阅读(2279)
推荐(0)
摘要:
之前我们说到,系统在运行的时候会直接依靠任务的优先级来找到任务的控制块从而实现任务的调用切换等功能,那么接下来的问题就是,系统是怎么找到并确定某一个特定的最高优先级任务并确定他的优先级的呢 为了解决这个问题,ucos采用了一种比较巧妙地方式,叫做就绪任务表,定义如下 OS_EXT OS_PRIO ...
阅读全文
posted @ 2015-03-08 22:43
邓小俊
阅读(4914)
推荐(0)
摘要:
Ucos实现多任务的基础包括几个方面:任务控制块,任务堆栈,中断,任务优先级,一一说起 首先,任务控制块的结构如下//系统在运行一个任务的时候,按照任务的优先级获取任务控制块,再在任务堆栈中获得任务代码指针typedef struct os_tcb {//任务控制块 OS_STK *OSTCBStk...
阅读全文
posted @ 2015-03-08 22:41
邓小俊
阅读(3192)
推荐(1)
摘要:
1. 指定堆栈数据类型(宽度) typedef unsigned int OS_STK;2. 指定Ucos移植方法3中保存cpu状态寄存器的变量的宽度 typedef unsigned int OS_CPU_SR;3. 指定堆栈的生长方向,cortex-m3的生长方向是高地址...
阅读全文
posted @ 2015-03-08 22:37
邓小俊
阅读(693)
推荐(0)
摘要:
很多时候写一些界面程序,需要实时的给用户提示,每次都弹出一个messagebox挺烦的,状态栏又怕人看不到,最后找了一个相关的类,显示效果不错,分享一下,效果如下下载库下来之后对应八个文件将八个文件加入项目中(好像是全部要加入)包含PPTooltip.h文件添加cpptooltip对象在界面初始化的...
阅读全文
posted @ 2015-02-07 22:54
邓小俊
阅读(463)
推荐(0)
摘要:
MFC下串口编程使用最多的两种方法是读取注册表和使用mscomm组件,都有着或多或少的缺陷,调用系统SDK比较麻烦,而MSCOMm组件最多支持16个串口,串口号大于16的时候无法打开,遇到这种情况,可以使用一个名为pcommlite的串口通讯库,下载安装之后,解压出来的文件包括根据编译的平台选择相应...
阅读全文
posted @ 2015-02-07 22:51
邓小俊
阅读(2746)
推荐(0)
摘要:
上一篇文章讲了以下D_PHY层,这只是最底层的,针对于显示,上层由分出了四种,由专门的工作组进行定义,显示器方面叫做display wrok group,主要分为DSC(display command set) 显示命令接口DBI(display bus interface) 显示总线接口 ,CPU...
阅读全文
posted @ 2015-02-07 22:49
邓小俊
阅读(1165)
推荐(0)
摘要:
Mipi针对显示有一整套解决方案,首先,框图如下可以看到,很像OSI七层参考模型,分为应用层:像素处理以及像素包管理,处理一些比较高的协议,协议层底层:用于对打包好的像素数据进行二次打包,包括对数据包进行ecc校验和基本的校验和测试等链路管理层:对数据链路进行管理硬件层:进行实际的包传送,将数字信号...
阅读全文
posted @ 2015-02-07 22:43
邓小俊
阅读(5556)
推荐(1)
摘要:
未来的产品都将朝着移动的方向发展,例如智能手机、数码相机、摄像机、平板电脑、媒体播放器、游戏机等,这些产品需要能执行多任务,包括处理多个不同的传感器如麦克风、图像传感器、磁罗盘、三轴加速度计和精细的触摸屏等,它们也要能够扑捉、处理及播放高清晰度的音频、视频和图像,能通过WiFi或者2G/3G/4G网...
阅读全文
posted @ 2015-02-07 22:40
邓小俊
阅读(1004)
推荐(0)
摘要:
上一章讲述了display-port的硬件连接,今天来说说协议层图中可以看到,最底层是物理层,上层是连接服务层,提供的服务包括同步数据传输服务,aux链接服务,aux设备数据传输服务,在设备端也一样,但是两者完成的功能不同,主机端服务主要用于完成数据打包,填充,数据的多路分离(也就是将一个数据包分在...
阅读全文
posted @ 2015-02-07 22:38
邓小俊
阅读(1463)
推荐(0)
摘要:
去年买了一张ATI的显卡,但是很坑爹的是显卡后面没有VGA接口,除了一个HDMI,另外两个接口不认识,后来认识了DVI,用DVI连接显示器,剩下一个接口是什么一直没管,前两天电脑清灰,感兴趣了,去查了一下,原来这个接口叫做display_port(DP),是从2006年提出的接口,而且,这两年风头强...
阅读全文
posted @ 2015-02-07 22:35
邓小俊
阅读(2010)
推荐(0)
摘要:
Lpc1788自带有emc接口用于驱动nandflash,norflash,sdram设备,对于nandflash驱动因为配置简单,时序也简单 首先,针对nandflash而言应当在系统中有三个地址,分别是数据读写地址,命令读写地址以及地址设置地址,这三个地址都需要更具电路图设置,电路图如下根据这张...
阅读全文
posted @ 2014-11-02 15:33
邓小俊
阅读(1676)
推荐(0)
摘要:
STM8拥有两个硬件看门狗,分别叫做独立看门狗和窗口看门狗独立看门狗的框图如下我们可以看到,独立看门狗的时钟来自于LSI内部低速振荡器,经过二分频到达看门狗外设单元,在经过一个七位的预分频到达计数器,这个七位的分频由PR控制,看门狗内部使用一个八位的向下计数计数器来计数,计数到0的时候发出看门狗复位...
阅读全文
posted @ 2014-10-17 23:48
邓小俊
阅读(6077)
推荐(0)
摘要:
LPC2478的IIC使用LPC2478带有三个IIC接口,每个IIC都可以工作在主机或者从机模式下,LPC的IIC的架构是一种状态机的形式,在不同的的时间做不同的工作之后有不同的状态来表示,简单来说,就是发送起始字节之后会有一个状态,接收到ACK之后会有一个状态,软件上根据已知的外设状态来进行下一...
阅读全文
posted @ 2014-10-17 21:51
邓小俊
阅读(530)
推荐(0)
摘要:
LPC2478的spi使用LPC2748具有一个SPI控制器,可以当做SPI主机或者从机使用,有以下特性其使用起来很方便,并且支持中断,使用的寄存器如下基本上,使用起来就是设置控制为,CPOL CPOA等等,数据长度的配置等,设置分频率,发送数据,等待状态或者中断,发送完成,就OK了官方给出的流程如...
阅读全文
posted @ 2014-10-17 21:38
邓小俊
阅读(584)
推荐(0)
摘要:
LPC2478外部中断2478的外部中断模型如下也就是说,port0和2支持外部中断,EINT0-2是三个独立管脚的中断,而EINT3则是port0和2的所有中断共同拥有的向量对于port0和2不需要刻意去把引脚配置为中断模式,将他配置到输入模式然后启动中断就可以了,对于独立的中断,配置过程如下1....
阅读全文
posted @ 2014-10-17 21:35
邓小俊
阅读(568)
推荐(0)
摘要:
STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量flash位置写入中断处理函数,其二,每个中断向量都具有可编程的优先级,共有两位优先级,两个BIT的优先级可以催化出4个优先级,具体如下中断控制器内部有一些...
阅读全文
posted @ 2014-10-17 00:30
邓小俊
阅读(16040)
推荐(2)
摘要:
GPIO使用LPC2478的GPIO是不能断开时钟的,上电就连接.处理GPIO主要就下面几步1.设置为普通IO模式2.设置输入输出方向3.设置值以下寄存器用于选择管脚是基本输入输出还是复用功能设置管脚是否具有上拉电阻其中,LPC的管脚分为两种,一种是传统GPIO还有一种是高速GPIO,其实严格来说,...
阅读全文
posted @ 2014-10-16 21:20
邓小俊
阅读(627)
推荐(0)
摘要:
LPC2478的中断系统LPC2478使用的是ARM PrimeCell向量中断控制器,一共支持32个中断向量,处于AHB空间便于系统快速访问,在中断向量的硬件优先级上还有一层可以用户自己设计的软件优先级,由于是ARM7内核,所以,2478的中断有两种,分别是FIQ中断和IRQ中断,IRQ有多个中断...
阅读全文
posted @ 2014-10-16 21:12
邓小俊
阅读(1238)
推荐(0)