中断机制
28335中断分3个层级:CPU级——PIE级——外设级
CPU级
包括
NMI(不可屏蔽中断)
16个可屏蔽中断:INT1–INT14;DLOGINT;RTOSINT(常用INT1–INT12,这12个接外设中断拓展模块)
CPU级中断管理
IFR (中断标志,表示该通道出现了中断,置1)
IER (中断使能,置1了才去处理该通道中的中断)
INTM (中断总阀,置1开启才会处理各个通道的中断,否则不会处理任何中断)
PIE级
承包了CPU级INT1–INT12这12个通道,每个通道在此又分为8个外部中断源(8个岔路)
PIE级中断管理
PIEIFRx.y (中断标志,类比CPUIFR)
PIEIERx.y (中断使能,类比CPUIER)
PIEACKx (PIE级总使能标志,PIE 级进入CPU 级的门禁)
置1,将PIEACK[0]位清0,从而打开后续INT1 的PIE 级到CPU 级的中断,否则会出现该组某一中断一直出现的情况,这样就会导致CPU无法处理同组的其它外设申请的中断。
关系图
共可接12(CPU)*8(PIE)=96个中断
寄存器赋值
可用整体赋值和位赋值
整体赋值 结构体名.寄存器名.all = 数值
例:GpioCtrlRegs.GPAMUX1.all = 0x00000000;
结构体CtrlRegs A组MUX1( GPIO0 to 15 )寄存器 全赋值0
位赋值 结构体名.寄存器名.bit.位域名=数值
例:GpioDataRegs.GPACLEAR.bit.GPIO7 = 1
结构体DataRegs A组CLEAR寄存器 GPIO7位 赋值1
GPIO各寄存器
GPxMUX(功能选择寄存器)
0配置为I/O功能。
1配置为外设功能。
复位时所有GPIO配置为I/O功能。
GPxDIR(方向选择寄存器)
0为输入
1为输出
复位时都为输入。
GPxDAT(数据寄存器)
0,且设置为输出功能时,置相应的引脚为低电平;
1,且设置为输出功能时,置相应的引脚为高电平。
GPxSET(设置寄存器)
是只写寄存器,任何读操作都返回0。
0,没有影响;
1,且引脚设置为输出时,将相应的引脚置成高电平。
GPxCLEAR(清除寄存器)
是只写寄存器,任何读操作都返回0。
0,没有影响;
1,且引脚设置为输出时,将相应的引脚置成低电平。
GPxTOGGLE(取反寄存器)
是只写寄存器,任何读操作都返回0。
0,没有影响;
1,且引脚设置为输出时,将相应的引脚取反(原来是低电平 变成高电平,原来是高电平 变为低电平)。
GPIO部分参考
参考网址:https://blog.csdn.net/nvh12138/article/details/79970985