谁给我详细说一下nxp的lpc17xx的串口中断RLS.RDA.CTI.THRE.Modem中断在什么情况...

谁给我详细说一下nxp的lpc17xx的串口中断RLS.RDA.CTI.THRE.Modem中断在什么情况...,第1张

UARTn RLS 中断(UnIIR[3:1]=011)是最高优先级中断,只要 UARTn Rx 输入产生 4 个错 误条件(溢出错误 OE、奇偶错误 PE、帧错误 FE 以及间隔中断 BI)中的任意一个,该位就会 被置位。产生中断的 UARTn Rx 错误条件可通过查看 U0LSR[4:1]来得到。当读取 UnLSR 时, 中断就会被清除。

UARTn RDA 中断(UnIIR[3:1]=010)与 CTI 中断(UnIIR[3:1]=110)共用第二优先级。当 UARTn Rx FIFO 深度到达 U1FCR[7:6]所定义的触发点时,RDA 就会被激活;当 UARTn Rx FIFO 深度低于触发点时,RDA 复位。当 RDA 中断激活时,CPU 可读出由触发点所定义的数据块。

CTI 中断(UnIIR[3:1]=110)是一个第二优先级中断,当 UARTn Rx FIFO 内含有至少一个 字符并且在接收到 3.5 到 4.5 字符的时间内没有发生 UARTn Rx FIFO 动作时,该中断激活。任 何 UARTn Rx FIFO 动作(UARTn RSR 的读取或写入)将会清除该中断。当接收到的信息不是 触发点值的倍数时,CTI 中断将会清空 UARTn RBR。例如:如果外围设备想要发送一个长度 为 105 个字符的信息,而触发值为 10 个字符,那么前 100 个字符将使 CPU 接收 10 个 RDA 中 断,而剩下的 5 个字符使 CPU 收到 1 到 5 个 CTI 中断(取决于服务程序)。

UARTn THRE 中断(UnIIR[3:1]=001)是第三优先级中断,当 UARTn THR FIFO 为空且满 足特定的初始化条件时,该中断激活。这些初始化条件是为了让 UARTn THR FIFO 有机会填入 数据,以免在系统启动时产生许多 THRE 中断而规定的。当 THRE=1 时,且在上次 LSR 寄存 器的 THRE=1 事件后,THR 中没有出现至少两个字符时,这些初始化条件就会实现一个字符减 去停止位的延时。当没有解码和服务 THRE 中断时,该延时为 CPU 提供了写数据到 THR 的时 间。当 UARTn THR FIFO 中曾经同时出现两个或更多字符,而当前的 THR 为空时,THRE 中 断就会立即被设置。当发生 UnTHR 写 *** 作或 UnIIR 读 *** 作,并且 THRE 为最高优先级中断 (UnIIR[3:1]=001)时,THRE 中断复位。

SG3524输出两路PWM,是双极性PWM那种,我不知道这是不是所谓的同步,但是我知道这种输出可以用单片机实现。

SG3524输出的PWM其实是对称的双极性,一个PWM输出口高电平的时候,另外一个PWM输出口

立即输出低电平,这个可以使用一个定时器做开关周期。

然后使用一个标志位作为一个死区时间。SG3524死区时间可调,可以根据输出电压信号来相应进行调节死区。

很多单片机内部寄存器设置有这种PWM功能,比如NXP 的LPC17XX系列就是

提供一种思路,程序没时间写。

1、PWM需要周期,因此定时器必须得设置匹配值,达到周期计数时间后复位TC值;

2、两个PWM波形需要产生可调的PWM,那么就需要让定时器知道什么时刻该让这个IO口输出高低电平。可以让两个输出提供参数,比如数值是多少后出现高电平,高电平持续多长数值?

3、最后就是关键点了,即将定时器TC值(周期值)细化,比如我脉宽周期设定TC值是3000时候复位,那么我可以将这个定时器定时300时候出现一次中断,600时候中断一次,900时候出现一次中断,一次类推,这样就可以得到很多的时间片段,即标志位COUNT。

4、我希望IO口在周期内出现可调节脉宽那么可以实现了,比如COUNT==IO1的时候让其出现高电平,持续多长时间后出现低电平(中断里面完成);

简单的示意程序:

void TIMER_HANDLE(void)

{

//判断是否达到TC值,如果达到则复位(COUNT清零),否则执行匹配中断

//在原有基础上设置匹配值中断,匹配值 +=300;

COUNT++

if((COUNT == IO1_H_TIME)) //现在正好是需要高电平的时刻,因此值置高

{

//持续时间开启(自减),是否为0?

//不是0,那么继续输出高电平

//是0,关闭输出,同时清除高电平时刻

}

}

这个是使用一个定时器做两路PWM输出的思路,估计精度不怎么好。LPC1700的MCPWM有那种功能,而且价格便宜,芯片才40块钱一个,易上手,网上资料很多。


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

原文地址: http://outofmemory.cn/bake/7936047.html

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

发表评论

登录后才能评论

评论列表(0条)

保存