4036|1

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

哪位路过帮解释下这段程序 [复制链接]

arm的一段程序尤其不理解HWREG(NVIC_SW_TRIG) = INT_GPIOA - 16;这句话是什么意思,中心思想 是想改变优先级但是不太理解
volatile unsigned long g_ulIndex;
volatile unsigned long g_ulGPIOa;
volatile unsigned long g_ulGPIOb;
volatile unsigned long g_ulGPIOc;

int main(void)
{
    //  防止JTAG失效,重要!
    jtagWait();

    IntMasterEnable();

    IntEnable(INT_GPIOA);
    IntEnable(INT_GPIOB);
    IntEnable(INT_GPIOC);


    IntPrioritySet(INT_GPIOA, 0x00);
    IntPrioritySet(INT_GPIOB, 0x00);
    IntPrioritySet(INT_GPIOC, 0x00);


    g_ulGPIOa = 0;
    g_ulGPIOb = 0;
    g_ulGPIOc = 0;
    g_ulIndex = 1;


    HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16;


    if((g_ulGPIOa != 3) || (g_ulGPIOb != 2) || (g_ulGPIOc != 1))
    {
        while(1);
    }

    IntPrioritySet(INT_GPIOA, 0x80);
    IntPrioritySet(INT_GPIOB, 0x40);
    IntPrioritySet(INT_GPIOC, 0x00);

    g_ulGPIOa = 0;
    g_ulGPIOb = 0;
    g_ulGPIOc = 0;
    g_ulIndex = 1;

    HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16;


    if((g_ulGPIOa != 3) || (g_ulGPIOb != 2) || (g_ulGPIOc != 1))
    {
         while(1);
    }


    IntPrioritySet(INT_GPIOA, 0x00);
    IntPrioritySet(INT_GPIOB, 0x20);
    IntPrioritySet(INT_GPIOC, 0x40);


    g_ulGPIOa = 0;
    g_ulGPIOb = 0;
    g_ulGPIOc = 0;
    g_ulIndex = 1;


    HWREG(NVIC_SW_TRIG) = INT_GPIOC - 16;

    if((g_ulGPIOa != 1) || (g_ulGPIOb != 2) || (g_ulGPIOc != 3))
    {
         while(1);
    }


    IntDisable(INT_GPIOA);
    IntDisable(INT_GPIOB);
    IntDisable(INT_GPIOC);


    IntUnregister(INT_GPIOA);
    IntUnregister(INT_GPIOB);
    IntUnregister(INT_GPIOC);

    IntMasterDisable();
    while(1)  ;

}

void GPIO_Port_A_ISR(void)
{

    g_ulGPIOa = g_ulIndex++;
}

void GPIO_Port_B_ISR(void)
{

    HWREG(NVIC_SW_TRIG) = INT_GPIOA - 16;


    g_ulGPIOb = g_ulIndex++;

}

void GPIO_Port_C_ISR(void)
{

    HWREG(NVIC_SW_TRIG) = INT_GPIOB - 16;

    g_ulGPIOc = g_ulIndex++;

}

最新回复

HWREG(NVIC_SW_TRIG) 里面是什么内容? 你可以查找一下看看优先级 的操作 HWREG(NVIC_SW_TRIG) = INT_GPIOB - 16 你就知道内容了  详情 回复 发表于 2011-7-18 13:20
点赞 关注

回复
举报

2131

帖子

0

TA的资源

至上芯片

沙发
 
HWREG(NVIC_SW_TRIG) 里面是什么内容?
你可以查找一下看看优先级 的操作

HWREG(NVIC_SW_TRIG) = INT_GPIOB - 16 你就知道内容了
 
个人签名处处留心皆学问!
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表