Cortex-M4 Systick滴答定时器

      Tickclock可以实现精确延时,在K60的datasheet中没有详细将,现在我把我找到资料分享一下,关于systick在Cortex-M4中有讲到我们大家平常在单片机开发中经常会使用到延时函数,一般的,我们会使用变量自加循环判断的方法来实现软件延时。但是,这种方法有个弊端——延时时间不精确。主要体现在:1, 在C语言编写的延时函数中,每条函数语句的执行时间可能不同,这样,在实现延时的过程中,想通过增加或减少函数语    句来实现延时的增加或减小控制起来不太方便,时间的精确性当然很难控制;2, 由于各种不同的控制器运行的主频可能...

http://www.eeworld.com.cn/mcu/2018/ic-news071740397.html 发布时间: 2018-07-17



STM32F030 Nucleo-做个准确的延时SysTick

这个结构体类型),然后定义成宏SysTick,所以宏SysTick就成为了SysTick_Type的指针。再往下分析:(4)分析得下图:SysTick的地址就是0xE000E010了,而根据结构体的贴心,第一个成员的地址和结构体的地址值是相等的,所以就有了上图(要是不懂的话,建议好好的去补补C语言,把基本功打扎实了,没点功力肿么能玩转物理地址呢??),所以,结构体的成员和SysTick的寄存器就对应上了...
关键词: STM32F030 延时 SysTick

http://www.eeworld.com.cn/mcu/2018/ic-news071740396.html 发布时间: 2018-07-17



STM32之DMA(直接存储器存储)

DMA简介: 在硬件系统中,主要由CPU(内核),外设,内存(SRAM),总线等结构组成,数据就经常要在内存与外设之间传输转移,或者是从外设A转移到外设B. DMA(Direct Memory Access)直接存储器存储,是一种可以大大减轻CPU工作量的数据存储方式. 数据转移的一般方式: 例如当CPU需要处理由ADC外设采集回来的数据时,CPU首先要把数据从ADC外设的寄存器读取到内存中(变量),然后进行运算处理. (但是,因为在转移数据的过程中会占用CPU十分宝贵的资源,所以希望CPU更多地被用在数据运算或响应中断之中,而数据转移的工作交...

http://www.eeworld.com.cn/mcu/2018/ic-news071740385.html 发布时间: 2018-07-17



STM32之RTC实时时钟

纪年,以及所在时区的事件.根据RTC计时器向用户输出时间. 这就是 rtc_time 这个结构体的作用,配置RTC时,保存用户输入的时间,其它函数通过它求出UNIX时间戳,写入RTC,RTC正常运行后,需要输出时间时,其它函数通过RTC获取UNIX时间戳,转化成用友好的时间表示方式保存在这个结构体上.PS: 起始在C语言标准库ANSI C中,也有类似的结构体所以 struct...
关键词: STM32 RTC 实时时钟

http://www.eeworld.com.cn/mcu/2018/ic-news071740383.html 发布时间: 2018-07-17



STM8S学习05——EEPROM读写操作C语言程序

/*这两天项目开发中,用到STM8的EEPROM功能,几个数据要掉电保存,在网上也查了一下EEPROM操作,发现网上出现的问题主要有两点:1、EEPROM读写不成功;2、EEPROM读写的时间太长;看了一下ST的库函数,自己测试了一下,没有发现什么问题,比较正常;在读写EEPROM期间,也有动态扫描LED数码管,没有发现数码管有闪烁。操作过程中:1、开发平台:STM8S105K4T6 IAR6.3 ST库版本 V2.1.02、操作EEPROM,使用到的库函数:  FLASH_Unlock(FLASH_MEMTYPE_DATA);  while (FLASH_GetFlagS...
关键词: STM8S EEPROM 读写操作

http://www.eeworld.com.cn/mcu/2018/ic-news071740378.html 发布时间: 2018-07-17



AVR中断引起重启

AVR中打开中断但没有相应的中断服务函数,会引起芯片重启,通过分析编译产生的汇编代码可以清楚的理解问题所在。编译器使用 Atmel Atudio7.0芯片:ATmega128A由于没有找到产生汇编代码的方法,因此使用ReAVR进行反汇编。以下为有ISR的情况C语言#include <avr/io.h>#include "avr/interrupt.h" ...
关键词: AVR 中断 重启

http://www.eeworld.com.cn/mcu/2018/ic-news071640363.html 发布时间: 2018-07-16



STM32中断设置相关寄存器的分析

,而中断中改变了该寄存器的值,那么中断返回后,继续写操作,那么ISR对寄存器的修改有可能会被覆盖。使用C语言:*((volatile unsigned long *)(0xE000E100))=0x04;//使能中断2*((volatile unsigned long *)(0xE000E180))=0x04;//除能中断2CMSIS提供了以下函数来使能或者除能中断:void...

http://www.eeworld.com.cn/mcu/2018/ic-news071640354.html 发布时间: 2018-07-16



51单片机之——外部中断0(INT0)

;      }}在上面可以看到配置外部中断0相关的寄存器时,我们先打开EX0=1,允许外部中断产生,再EA = 1,打开总中断,这样就配置好了能产生外部中断0的先决条件,通过IT0 来配置中断的触发方式。在中断服务函数中,函数名“INT0”可自由编写,并且中单服务函数不需要声明,后面所加的“interrupt X”X为该中断对应的C语言序号。 值得注意...

http://www.eeworld.com.cn/mcu/2018/ic-news071640341.html 发布时间: 2018-07-16



I2C器件的从设备地址的设置(以AT24C02为例)

1 AT24C02的硬件连接电路图2 从设备地址  在进行I2C通信时,主机发送启动信号后,再发送寻址信号。器件的地址有7位和10位,以7为地址寻址为例,寻址信号由一个字节构成,高7位为地址位,最低位为方向位,用来表示主机与从器件的数据传输方向,方向位0代表主机接下来对从器件进行写操作,方向位为1,表明主机接下来对器件进行读操作。   AT24C02的高4位是固定的,为1010b,低3位则由A0/A1/A2信号线的电平决定。按照我们此处的连接, A0/A1/A2 均为 0,所以 EEPROM 的 7 位设备地址是: 1010 000b...

http://www.eeworld.com.cn/mcu/2018/ic-news071540322.html 发布时间: 2018-07-15



基于单片机的串口(RS232+485)通信各种程序集合【C语言】

基于单片机的串口(RS232+485)通信各种程序集合 【C语言】! ...
关键词: RS232 RS485

http://download.eeworld.com.cn/detail/mamselc/576007 发布时间: 2018-07-15



51单片机的代码存储问题

数组前不加“code”或“data”,则默认将数组存放在程序存储器中;code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中不能改变;xdata 指定数据是存储在外部数据存储器了;data 指定数据存储在内部低128字节数据存储器里,如果变量不指定存储位置,默认就是data型,这部分存储器寻址速度最快;idata 指定数据存储在内部低256字节数据存储器里,但51只有128字节内部RAM,52才有256字节;pdata 指定数据存储在外部低256字节数据存储器里,这时候寻址用8位寄存器R0和R1,而不用16位的DPTR,寻址速度比xdata快。单片机C语言un...

http://www.eeworld.com.cn/mcu/2018/ic-news071440288.html 发布时间: 2018-07-14



TI DSP的选型、开发工具选择及设计支持

:     1)讲述DSP的CPU,memory,program memory addressing,data memory addressing的资料都需要看、外设资源的资料可以只看自己用到的部分;     2)C和汇编的编程指南需要看     3)汇编指令和C语言的运行时间支持库、DSPLIB等资料需要看...

http://bbs.eeworld.com.cn/thread-650809-1-1.html 发布时间: 2018-07-13



美国EXC航空总线产品

:EXCALIBUR的ARINC429板卡速率可以通过软件任意可调(可调速率范围在100k—12.5k常用); 高可靠性:1553b接口都是每通道双冗余的,增加了传输过程中数据正确的可靠性 ; 开放的源代码:根据客户操作系统的需求,厂家提供相应驱动的C语言源代码; 有竞争的价格:价格与同功能其他品牌产品比较有绝对的优势; 适应恶劣环境的产品:根据不同环境要求提供宽温级别的产品。 具体...

http://bbs.eeworld.com.cn/thread-650710-1-1.html 发布时间: 2018-07-13



51单片机流水灯的三种实现方法

为“<<”,每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位。CY位中原来的数丢弃,最低位补0,其他位依次向左移动一位。相信大家学过C语言都清楚吧,这里就不多说了。而函数_crol_的作用是循环左移。它会将最高位移入最低位,其他位依次向左移一位。用法:x=0xfe;x=_crol_(x,1);//循环左移移位。接下来看具体程序:#include<...

http://www.eeworld.com.cn/mcu/2018/ic-news071240270.html 发布时间: 2018-07-12



51单片机之——外部中断0(INT0)

C语言序号。 值得注意的是,对于51单片机而言,上电之后,所有寄存器的值默认为“0”,所有 I/O 口的值默认为“1”。 通过外部中断的理解,很方便的能引出下一节的定时器/计数器中断。...

http://www.eeworld.com.cn/mcu/2018/ic-news071240267.html 发布时间: 2018-07-12



除法运算的C语言定点摸拟

=16384; 因为商z的定标值为15,所以定点z=16384,即为浮点z=16384/215=0.5。 除法运算的C语言定点摸拟 ...

http://bbs.eeworld.com.cn/thread-650680-1-1.html 发布时间: 2018-07-12



语音信号800Hz l9点FIR低通滤波C语言定点程序

<1ength;i++) sum=0; for(j=0;j<n;j++)sum+=(long)h[j]*x1[i-j+n-1]; xout=sum>>15; for(i=0;i<(n-1);i++)x1[n-i-2]=xin[length-i-1]; } 语音信号800Hz l9点FIR低通滤波C语言定点程序 ...

http://bbs.eeworld.com.cn/thread-650679-1-1.html 发布时间: 2018-07-12



语音信号800Hz 19点FIR低通滤波C语言浮点程序

(fp1);  /*取一帧语音数据*/ filter(indata,outdata,19,h);/*调用低通滤波子程序*/ for(i=0;i<length;i++)putw(outdata,fp2);/*将滤波后的样值写入文件*/ } fcloseall();/*关闭文件*/ return(0); } 语音信号800Hz 19点FIR低通滤波C语言浮点程序 ...

http://bbs.eeworld.com.cn/thread-650678-1-1.html 发布时间: 2018-07-12



C语言进行DSP开发编程的GEL语言的使用

本帖最后由 Jacktang 于 2018-7-12 18:52 编辑 GEL语言的使用:       GEL(General Extension Language通用扩展语言)是一种类似于C语言的一种解释性语言,它可以创建GEL函数,以扩展CCS用途。       GEL是C语言的一个子集,然而它不能声明...

http://bbs.eeworld.com.cn/thread-650667-1-1.html 发布时间: 2018-07-12



编程示例:浮点至定点变换的C程序举例

通过一个例子来说明C程序从浮点变换至定点的方法。这是一个对语音信号(0.3~3.4kHz)进行低通滤波的C语言程序,低通滤波的截止频率为800Hz,滤波器采用19点的有限冲击响应FIR滤波。语音信号的采样频率为8kHz,每个语音样值按16位整型数存放在insp.dat文件中。 例1.7语音信号800Hz 19点FIR低通滤波C语言浮点程序。 #i nclude <stdio.h>...

http://bbs.eeworld.com.cn/thread-650654-1-1.html 发布时间: 2018-07-12




<上一页 3456789101112131415161718 下一页> 相关结果约22,222个