• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : TINY 6410 完整裸机按键中断测试 复制链接 | 浏览器收藏 | 打印
乌鸦笑
级别: 新手上路
UID: 57653
精华: 1
发帖: 22
金钱: 160 两
威望: 32 点
贡献值: 1 点
综合积分: 64 分
注册时间: 2011-10-27
最后登录: 2012-02-03
楼主  发表于: 2011-11-14 17:03

 TINY 6410 完整裸机按键中断测试

管理提醒: 本帖被 xoom 执行取消置顶操作(2011-11-14)
裸机程序,实现K1到K8按键中断触发,串口发送识别信息。

#include "S3c6410_addr.h"
#include "utils.h"
#include "Interrupt.h"

void key_Init(void)  //定义PIN脚位中断脚,并设置中断触发类型,使能中断。
{
    rGPNCON = (rGPNCON & ~(0xfffU)) | 0xaaa;   //K1--K6
    rGPLCON1 = (rGPLCON1 & ~(0xff<<12)) | (0x33<<12);  //K7,K8
    
    rEINT0CON0 =(rEINT0CON0 & ~(0xfffU)) |0x222;  //下降沿触发
    rEINT0CON1 =(rEINT0CON1 & ~(0xff<<4)) |(0x22<<4);
    
    rEINT0MASK &= ~0x18003f;   //中断使能

}

void KeyIntHandle(void) __irq    //中断函数
{
    if(rEINT0PEND & 0x01)
      Uart_Printf("K1. \n");
    if(rEINT0PEND & 0x02)
      Uart_Printf("K2. \n");
    if(rEINT0PEND & 0x04)
      Uart_Printf("K3. \n");
    if(rEINT0PEND & 0x08)
      Uart_Printf("K4. \n");
    if(rEINT0PEND & 0x10)
      Uart_Printf("K5. \n");
    if(rEINT0PEND & 0x20)
      Uart_Printf("K6. \n");
    if(rEINT0PEND & 0x80000)
      Uart_Printf("K7. \n");
    if(rEINT0PEND & 0x100000)
      Uart_Printf("K8. \n");
    
    Uart_Printf("KeyIntHandle rEINT0PEND %d. \n",rEINT0PEND);

    rEINT0PEND |= 0x18003f;  //中断状态寄存器写1清0
    INTC_ClearVectAddr(); //清空中断向量表中的状态标志

    //Uart_Printf("KeyIntHandle rVIC0ADDR %d. \n",rVIC0ADDR);    
}

void _main(void)
{

    Uart_Init();
    Port_Init();
    key_Init();
    INTC_Init();    
    INTC_SetIntISR(0, KeyIntHandle);  //往中断向量地址寄存器中写入中断函数地址    
    INTC_SetIntISR(1, KeyIntHandle);    
    INTC_SetIntISR(32, KeyIntHandle);    
    INTC_SetIntISR(33, KeyIntHandle);    
    INTC_Enable(0);    //使能中断向量号,中断向量号对应的中断见中断向量表
    INTC_Enable(1);    
    INTC_Enable(32);    
    INTC_Enable(33);    
    Uart_Printf("s3c6410 keytest . \n");
    
    while(1);    
}
乌鸦~V~
级别: 侠客
UID: 44311
精华: 0
发帖: 138
金钱: 710 两
威望: 142 点
贡献值: 0 点
综合积分: 276 分
注册时间: 2011-04-24
最后登录: 2014-10-14
1楼  发表于: 2011-11-18 00:42
学习!! 好复杂 操作寄存器
由浅及深,嵌入式探索中
级别: 新手上路
UID: 47707
精华: 0
发帖: 46
金钱: 230 两
威望: 46 点
贡献值: 0 点
综合积分: 92 分
注册时间: 2011-05-24
最后登录: 2024-01-29
2楼  发表于: 2011-11-29 12:42
学习一下,研究一下
级别: 新手上路
UID: 60411
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
贡献值: 0 点
综合积分: 10 分
注册时间: 2011-12-09
最后登录: 2013-05-13
3楼  发表于: 2011-12-09 18:42
我第一次来 先随便看看
级别: 侠客
UID: 57997
精华: 0
发帖: 107
金钱: 535 两
威望: 108 点
贡献值: 0 点
综合积分: 214 分
注册时间: 2011-11-01
最后登录: 2018-02-13
4楼  发表于: 2011-12-17 13:29
正要开始看中断,谢谢了
级别: 侠客
UID: 57997
精华: 0
发帖: 107
金钱: 535 两
威望: 108 点
贡献值: 0 点
综合积分: 214 分
注册时间: 2011-11-01
最后登录: 2018-02-13
5楼  发表于: 2011-12-22 12:54
楼主能把中断初始化函数放出来么
级别: 新手上路
UID: 60011
精华: 0
发帖: 13
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 26 分
注册时间: 2011-12-03
最后登录: 2012-11-06
6楼  发表于: 2011-12-22 14:55
好东西啊!!
级别: 新手上路
UID: 61262
精华: 0
发帖: 16
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2011-12-26
最后登录: 2018-02-08
7楼  发表于: 2011-12-26 17:40
学习!
级别: 新手上路
UID: 50862
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2011-06-27
最后登录: 2017-12-18
8楼  发表于: 2012-01-02 22:59
我的不能实现呀
级别: 新手上路
UID: 69507
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2012-05-07
最后登录: 2012-05-28
9楼  发表于: 2012-05-15 22:18
请问楼主,实现不了,是不是因为我的初始化没做好啊
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go