打印
[ZLG-ARM]

lm3s101 EasyARM101中断

[复制链接]
1169|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Radiance0|  楼主 | 2010-11-19 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前辈们我刚学arm 。用的EasyARM101,我写了个简单程序可中断有反应,但中断程序没反映,为什么。。。。
还有我用的Keil+J-link
调试的时候开发板自己运行自己的,keil调试没反应,这是为什么。。。

急啊...

#include <lm3s101.h>
#include "hw_ints.h"
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_gpio.h"
#include "gpio.h"
#include "sysctl.h"
#define PIN4 GPIO_PIN_4                //0x0000 0010
#define PIN5 GPIO_PIN_5                //0x0000 0020

void GPIO_Port_B_ISR(void);
void GPIO_CONFIG(void);


int sing=1;
unsigned long  u=0x00000020;

void GPIO_CONFIG(void)
{
    //时钟设置
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);
    //GIOP B口使能
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
    //设置PB1、3口输入   PB4、5口输出
    GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_1|GPIO_PIN_3, GPIO_DIR_MODE_IN);
    GPIODirModeSet(GPIO_PORTB_BASE, GPIO_PIN_4|GPIO_PIN_5, GPIO_DIR_MODE_OUT);
    //设置中断
    GPIOIntTypeSet(GPIO_PORTB_BASE,GPIO_PIN_1|GPIO_PIN_3,GPIO_RISING_EDGE);
    //中断使能
    GPIOPinIntEnable(GPIO_PORTB_BASE,GPIO_PIN_1|GPIO_PIN_3);
    IntEnable(INT_GPIOB);

    //注册中断程序
    IntRegister(INT_GPIOB,GPIO_Port_B_ISR);

    IntEnable(INT_GPIOB);
    IntMasterEnable( );
}

//延时程序
void delay(int d)
{
    for(;d!=0;--d);
}


//中断服务程序
void GPIO_Port_B_ISR(void)
{
    unsigned long  ulStatus;


    ulStatus=GPIOPinIntStatus(GPIO_PORTB_BASE,true);          //  读取中断状态
    GPIOPinIntClear(GPIO_PORTB_BASE , ulStatus);            //  清除中断状态,

    if(sing==1)
    {
        sing=0;
        GPIOPinWrite(GPIO_PORTB_BASE,PIN5,u);
    }
    else
    {
        sing=1;
        GPIOPinWrite(GPIO_PORTB_BASE,PIN5,~u);
    }



}


//主程序入口
int main(void)
{
    GPIO_CONFIG();

    for(;;)
    {
        while(sing==1)
        {
            GPIOPinWrite(GPIO_PORTB_BASE,PIN4,u);        //01
            delay(800000);                                         //延时
            GPIOPinWrite(GPIO_PORTB_BASE,PIN4,~u);        //10
            delay(800000);
        }
    }
}

相关帖子

沙发
yoyowodeai| | 2010-11-19 22:37 | 只看该作者
中断有反应,但中断程序没反映什么意思啊?不是很明白

使用特权

评论回复
板凳
hotpower| | 2010-11-20 02:46 | 只看该作者
sing被优化了…

使用特权

评论回复
地板
Radiance0|  楼主 | 2010-11-20 11:01 | 只看该作者
2# yoyowodeai

IntRegister()没起作用
昨晚上换了个方式,在startup.s里改中断程序入口正常了。原先中断不能进入中断程序。。。

有谁教我IntRegister()函数怎么用,举个例子。

使用特权

评论回复
5
Radiance0|  楼主 | 2010-11-20 11:02 | 只看该作者
3# hotpower
什么意思??我是小白

使用特权

评论回复
6
Radiance0|  楼主 | 2010-11-20 11:02 | 只看该作者
有谁教我IntRegister()函数怎么用,举个例子。:dizzy:

使用特权

评论回复
7
amini| | 2010-12-29 16:49 | 只看该作者
学习了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝