zoukankan      html  css  js  c++  java
  • DSP28335 IO口寄存器

    DSP28335 GPIO模块
    DSP28335 GPIO模块分为三类IO口:PORTA(0-31),PORTB(32-63),PORTC(64-87)
    对GPIO模块的设置主要通过三类寄存器来完成,分别是:控制寄存器、数据寄存器、中断寄存器。
    1、控制寄存器

      GPxCTRL;    // GPIO x Control Register (GPIO0 to 31)
                  //设置采样窗周期T=2*GPXCTRL*Tsysclk;
      GPxQSEL1;   // GPIO x Qualifier Select 1 Register (GPIO0 to 15)(32-47)
                 
      GPxQSEL2;   // GPIO x Qualifier Select 2 Register (GPIO16 to 31)(48-63)
                  //每两位控制一个引脚,确定是3周期采样还是6周期采样或者不用采样
      GPxMUX1;    // GPIO x Mux 1 Register (GPIO0 to 15)(32-47)(64-79)

      GPxMUX2;    // GPIO x Mux 2 Register (GPIO16 to 31)(48-63)(80-95)
                  //配置各个引脚的功能,0:I/O功能,1:外设功能。
      GPxDIR;     // GPIO x Direction Register (GPIO0 to 31)(32-63)(64-95)
                  //配置每个引脚是输入还是输出,0:数字量输入;1:数字量输出。
      GPxPUD;     // GPIO x Pull Up Disable Register (GPIO0 to 31)(32-63)(64-95)
                  //使能或禁止jie口的内部上拉
    2、数据寄存器
      GPxDAT;     // GPIO Data Register (GPIO0 to 31)(32-63)(64-95)

      GPxSET;     // GPIO Data Set Register (GPIO0 to 31)(32-63)(64-95)

      GPxCLEAR;   // GPIO Data Clear Register (GPIO0 to 31)(32-63)(64-95)

      GPxTOGGLE;  // GPIO Data Toggle Register (GPIO0 to 31)(32-63)(64-95)
    3、中断寄存器
       GPIOXINT1SEL; // XINT1 GPIO Input Selection

       GPIOXINT2SEL; // XINT2 GPIO Input Selection

       GPIOXNMISEL;  // XNMI_Xint13 GPIO Input Selection

       GPIOXINT3SEL; // XINT3 GPIO Input Selection

       GPIOXINT4SEL; // XINT4 GPIO Input Selection

       GPIOXINT5SEL; // XINT5 GPIO Input Selection

       GPIOXINT6SEL; // XINT6 GPIO Input Selection

       GPIOXINT7SEL; // XINT7 GPIO Input Selection

       GPIOLPMSEL;   // Low power modes GP I/O input select
    可以对GPIO0-63进行外部中断设置

    拓展   :

    https://blog.csdn.net/E_ROAD_BY_U/article/details/53083151?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

    配置外部中断:

    1.外设级中断

    外设产生中断时,该中断事件相关的中断标志位(IF)置1。此时,如果该中断相应的中断使能寄存器(IE)也置为1,外设就会向PIE控制器发出一个中断请求。如果外设级中断没有被使能(相应的使能位为0),那么外设就不会向PIE发出中断请求,相应的中断标志位会一直保持置位状态,除非用软件清除。当然,在中断标志位保持在1的时候,一旦该中断被使能了,那么外设立马会向PIE发出中断申请。

    注:不管在什么情况下,外设寄存器中的中断标志位必须采用软件进行清除。

    2.PIE级中断

    当外设产生中断事件,相关中断标志位置位,中断使能位使能之后,外设就会把中断请求提交给我们的PIE模块。PIE模块将96个外设和外部引脚的中断进行了分组,分为12组,每组8个中断,分别是PIE1-PIE12。每个组的中断被多路汇集进入1个CPU中断,例如PDPINDA,PDPINDB,XINT1,XINT2,ADCINT,TINT0,WAKEINT这7个中断都在PIE1组内,这些中断都汇集到CPU中断的INT1。

    PIE级的中断和外设级的中断比较:外设中断的中断标志位是需要软件清除的,而PIE级的中断标志位都是自动置位或者清除的。但是PIE多了一个PIEACK寄存器,同一时间只能放一个中断过去,只有等到这个中断被响应,给PIEACK置位,才能让同组的下一个中断过去,被CPU响应,而PIEACK当响应一次中断后就需要手动置0,因此需要软件在中断服务程序里写1清0

    3.CPU级中断

    CPU级的操作都是自动的,不管是中断标志位(IFR),还是中断的使能位(IER)。

    但是可以通过软件设置开中断、关中断。(而且配置中断前都会先关闭中断、清零标志位)

  • 相关阅读:
    正则表达式
    mvc3路由设置
    MVC 过滤器
    mvc3之自定义类实现路由配置和URL的生成
    Mvc View
    定义一个底层的泛型
    一个关于字典查找引发的思考——BinarySearch
    Linq学习之旅——Linq to Objects之延期执行方法(上篇)
    Linq学习之旅——Linq to Objects之立即执行方法(下篇)
    Linq学习之旅——Linq to Objects之延期执行方法(下篇)
  • 原文地址:https://www.cnblogs.com/since1996/p/13924820.html
Copyright © 2011-2022 走看看