实时中断就是一个定时模块,定时溢出,产生中断。 第一步,实时中断RTI 在默认情况下是关闭的,怎样才能让 RTI 工作呢? 这就用到实时中断控制寄存器 RTICTL 了。 RTICTL是一个八位寄存器,第七位没定义,只用到低七位[RTR6~RTR0]。当RTR[6:4]=000时,实时中断被禁止,只要当RTR[6:4] 不全为0时,实时中断就开了同时实时中断的溢出周期也是由该寄存器配置的。 RTI 的参考时间是外部晶振的时钟OSCCLK。故,实时中断的溢出时钟周期=(RTR[3:0]+1) x (2的(RTR[6:4] + 9)次方)/OSCCLK 第二步,要想在实时中断溢出时产生一个中断,则用到寄存器 CRGINT 了。
当CRGINT_RTIE=1时,每个周期结束时,就会产生一个中断只要配置好上面说的两个寄存器,再写上相应的中断函数,实时中断就可以用了。顺便提一下,实时中断 RTI 的中断号是 7 CRGFLG_RTIF 是实时中断的标志位,当 RTI 溢出时,CRGFLG_RTIF 就会由硬件置1,向CRGFLG_RTIF 写1,可以清零标志位。这和51单片机不一样,51单片机的标志位清零是向相应的寄存器写0 与 RTI 相关的寄存器还有 CLKSEL_RTIWAI,不过一般都不会用到。当CLKSEL_RTIWAI=1时,只要系统进入等待模式,RTI 就停止工作。当CLKSEL_RTIWAI=0时,在等待模式下,RTI 仍然工作实时中断写到这里接进尾声了,下面附些与实时中断相关的程序:实时中断就是一个定时模块,定时溢出,产生中断。 第一步,实时中断RTI 在默认情况下是关闭的,怎样才能让 RTI 工作呢? 这就用到实时中断控制寄存器 RTICTL 了。 RTICTL是一个八位寄存器,第七位没定义,只用到低七位[RTR6~RTR0]。当RTR[6:4]=000时,实时中断被禁止,只要当RTR[6:4] 不全为0时,实时中断就开了同时实时中断的溢出周期也是由该寄存器配置的。 RTI 的参考时间是外部晶振的时钟OSCCLK。故,实时中断的溢出时钟周期=(RTR[3:0]+1) x (2的(RTR[6:4] + 9)次方)/OSCCLK 第二步,要想在实时中断溢出时产生一个中断,则用到寄存器 CRGINT 了。
当CRGINT_RTIE=1时,每个周期结束时,就会产生一个中断只要配置好上面说的两个寄存器,再写上相应的中断函数,实时中断就可以用了。顺便提一下,实时中断 RTI 的中断号是 7 CRGFLG_RTIF 是实时中断的标志位,当 RTI 溢出时,CRGFLG_RTIF 就会由硬件置1,向CRGFLG_RTIF 写1,可以清零标志位。这和51单片机不一样,51单片机的标志位清零是向相应的寄存器写0 与 RTI 相关的寄存器还有 CLKSEL_RTIWAI,不过一般都不会用到。当CLKSEL_RTIWAI=1时,只要系统进入等待模式,RTI 就停止工作。当CLKSEL_RTIWAI=0时,在等待模式下,RTI 仍然工作实时中断写到这里接进尾声了,下面附些与实时中断相关的程序:
#include
#include
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
void RTI_INIT() //实时中断 RTI 初始化函数
{
CRGINT_RTIE=1; // 允许在每个周期结束产生中断
RTICTL=0x59; // 设置RTICTL为 0101 1001 溢出周期为 (9+1)*2^(5+9)/(16M)= 10*2^14/(16M)
} //实际上是10.24ms 16M是外部晶振的频率,实时中断以外部晶振时钟为参考时钟
void main()
{
DisableInterrupts;
RTI_INIT();
EnableInterrupts;
for(;;)
{
}
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED //实时中断RTI 中断函数
void interrupt 7 RTI(void)
{
CRGFLG_RTIF=1; //向CRGFLG_RTIF 写1 清除标志位
上一篇:飞思卡尔中断设置
下一篇:飞思卡尔运动小车前方道路识别
推荐阅读
史海拾趣
在电源适配器和服务器电源市场,EUtech公司凭借技术创新迅速崛起。他们不断优化产品设计,提高产品性能,同时注重节能环保。随着下游AI行业的快速发展,公司及时抓住机遇,推出了一系列高性能、高可靠性的电源产品,赢得了市场的广泛认可。
随着电子技术的不断进步,Fischer Elektronik始终走在行业前沿,不断推出创新产品。公司研发的散热系统、散热半导体和散热器等产品,不仅性能卓越,而且设计精良,满足了各种复杂应用场景的需求。此外,Fischer Elektronik还不断拓展产品线,增加了连接器、外壳等系列产品,进一步巩固了其在电子元件市场的地位。这些创新和技术突破,为公司的持续发展提供了强大动力。
为了更好地服务全球客户,Fischer Elektronik积极实施国际化战略。公司在全球范围内建立了多个生产基地和销售网络,以确保能够快速响应市场需求并提供高质量的产品和服务。通过多年的努力,Fischer Elektronik已经成功进入了众多国际市场,并与众多知名企业建立了长期合作关系。这些合作不仅提升了公司的品牌知名度,也为其带来了更多的商业机会和发展空间。
ECI公司自成立以来,一直致力于技术创新和研发。在电子行业的早期,ECI就投入巨资研发先进的半导体技术,成功推出了多款高性能、低功耗的芯片产品。这些产品迅速在市场上获得认可,为公司赢得了良好的口碑。随着技术的不断进步,ECI公司不断推出更加先进的电子产品,引领了电子行业的发展趋势。
在国内市场取得一定成绩后,Dymec公司开始寻求更广阔的发展空间。公司决定进军国际市场,通过参加国际展会、建立海外销售渠道等方式,逐步打开了国际市场的大门。在拓展国际市场的过程中,Dymec公司不仅提升了品牌影响力,还积累了丰富的国际业务经验。
作为一家有社会责任感的企业,APSA公司始终注重可持续发展。公司在生产过程中积极采取环保措施,降低能耗和排放。同时,公司也积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。
请注意,这些故事是基于一般性的电子行业发展趋势和公司成长路径构建的,并不特指任何一家名为“APSA”的公司。如果你需要关于特定公司的信息,建议直接查阅该公司的官方网站或相关新闻报道。
最近做了一块板子因要许多I/O口,但我开始所选的芯片I/O口不多,所以想在FPGA里做一个NIOS的核,通过串口给nios发送数据,因nios需要很多的资源,想通过nios进行外部的运算后再给FPGA,但现在不知道怎样去设计一个nios,怎样经行串口的进行发送数据 ...… 查看全部问答∨ |
|
用的是stm32f103,UART11 57600,8,1,N 使用时偶尔发现通讯停止现象,复位后又工作正常。由于设计中速度比较慢,所以用万利的开发板连PC机跑程序。单片机持续发送数据,PC机也持续发送数据。出现以下现象。 单片机在主程序中持续发送数据。程 ...… 查看全部问答∨ |
|
上传一部分找到的FPGA入门相关书籍,回馈论坛给予的资源帮助,以供各位参考学习,希望大家都可以共享一些更有价值的资料。。。。。。 [ 本帖最后由 旅途尽美 于 2013-4-29 14:55 编辑 ]… 查看全部问答∨ |
|
第一次画MSP430f149的原理图,大家帮忙看看,悬赏纠错,希望能在画PCB前发现错误 本帖最后由 yushengjiexy 于 2014-3-28 21:55 编辑 RT,谢谢大神 … 查看全部问答∨ |
|
本人小菜鸟一个对电子也不是很懂,最近在学习模电在网上下载了一本书叫(电子设计从零开始)在第156页中遇到令我费解的事,也就如下图:图纸上的电路中的Re单位是560千欧,怎么到下面的计算里面就变成了560欧姆了.还望各位大侠指点一下。 … 查看全部问答∨ |