ARM定时器中的 死区发生器 dead-zone generator是什么东西,有什么用

ARM定时器中的 死区发生器 dead-zone generator是什么东西,有什么用,第1张

是用于对对大功率设备进行pwm控制的,这个用于一个开关闭和和另一个开关断开之间,在这两个状态之间插入一个时间缺口,这个时间缺口即为死区,可以防止两个开关都处于闭合状态,功率过大,造成损伤

定时器中断是设定定时时间,到了该时间,就进行处理一次。

可以处理按键扫描,动态显示,时钟累加等。

外部中断,是与外接接触,当中断引脚为低电平时,进入中断。

如果单片机没有专门的键盘中断,可以使用外部中断来做键盘中断。

这主要看你采样时刻的精度要求。

以交流电 50HZ采样为例。周期20ms,采样128点, 定时器内部触发AD采样。

数据顺序存放。

然后找到128点中最大值及所在位置。 可以基本时间了。 时间的精度,是20ms/128。

各ARM体系结构版本

ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。

为了清楚地表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1~V6表示

ARM版本Ⅰ: V1版架构

该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。

其基本性能有:

基本的数据处理指令(无乘法);

基于字节、半字和字的Load/Store指令;

转移指令,包括子程序调用及链接指令;

供 *** 作系统使用的软件中断指令SWI;

寻址空间:64MB(226)。

ARM版本Ⅱ: V2版架构

该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。

版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。

V2版架构与版本V1相比,增加了以下功能:

乘法和乘加指令;

支持协处理器 *** 作指令;

快速中断模式;

SWP/SWPB的最基本存储器与寄存器交换指令;

寻址空间:64MB。

ARM版本Ⅲ : V3版架构

ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。

变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。

V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:

寻址空间增至32位(4GB);

当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);

增加了程序状态保存寄存器SPSR(Saved Program Status Register);

增加了两种异常模式,使 *** 作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;

增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;

增加了从异常处理返回的指令功能。

ARM版本Ⅳ : V4版架构

V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。

V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。

指令集中增加了以下功能:

符号化和非符号化半字及符号化字节的存/取指令;

增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;

完善了软件中断SWI指令的功能;

处理器系统模式引进特权方式时使用用户寄存器 *** 作;

把一些未使用的指令空间捕获为未定义指令

ARM版本Ⅴ : V5版架构

V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。

这些新增命令有:

带有链接和交换的转移BLX指令;

计数前导零CLZ指令;

BRK中断指令;

增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令;

改进了ARM/Thumb状态之间的切换效率;

E---增强型DSP指令集,包括全部算法 *** 作和16位乘法 *** 作;

J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

ARM版本Ⅵ : V6版架构

V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。

此架构在V5版基础上增加了以下功能:

THUMBTM:35%代码压缩;

DSP扩充:高性能定点DSP功能;

JazelleTM:Java性能优化,可提高8倍;

Media扩充:音/视频性能优化,可提高4倍

TCR 是ARM的定时器控制寄存器 T0TCR也就是定时器0的控制寄存器,该寄存器有两位:0位计数器使能,1位计数器复位。T0TCR=0x03,即0位和1位都至1,也就是:复位定时器0计数器,同时启动定时器0的计数器

定时器定时溢出后要重新更新初始值,更新方式有两种,一种是自动重装载,也就是定时器溢出后自动更新初始化时的数值再重新运行计数,只能是初始化的数值;另一种是重新赋值,就是在程序里面给计数器赋值,这种方式就叫手动更新,可以根据需要赋不同值。

声明这里改一下void __irq timer0_ISR (void);

这里也对应改一下

void __irq timer0_ISR (void) {

timer0Times++;

if(timer0Times == 10){

i=IO0SET; //读出当前LED2控制值

if((i&LED)==0){

IO0SET=LED;

}else{

IO0CLR=LED;

}

timer0Times = 0;

}

T0IR = 1;

VICVectAddr = 0;

}

arm在发生中断的时候会固定跳到0x18处执行一段code,所以你需要在0x18处放一段你自己的code,而我们通常的做法就是在这个放一个code使其执行0x38处的中断handler,这个handler是我们自己定义的,一般在这个handler里面会有b code_ISR之类的语句,跳转到c语言中的 code_ISR函数,然后在这个函数里面再判断是那种类型的irq,比如说是timer,那么就跳转到Timer1_ISR这个函数里面。就算是执行啦。

以上就是关于ARM定时器中的 死区发生器 dead-zone generator是什么东西,有什么用全部的内容,包括:ARM定时器中的 死区发生器 dead-zone generator是什么东西,有什么用、arm 时钟中断和定时器中断的区别、ARM在采样时,想要获取最大采样值的采样时刻,请问如何设置定时器等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9852024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存