DSP28335 中断机制、寄存器赋值及GPIO各寄存器

中断机制

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无法处理同组的其它外设申请的中断。

关系图
DSP28335 中断机制、寄存器赋值及GPIO各寄存器_第1张图片
共可接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

你可能感兴趣的:(笔记随笔)