main.c
来自「三星ARM2410的键盘及数码管控制程序」· C语言 代码 · 共 85 行
C
85 行
/*=============================================================================
--------------------------------- Copy Left -----------------------------------
Illidan Fly's Project
Power by BigFly Network
http://bigfly.happybobby.com
Released under GPL2 License
----------------------------- File Description --------------------------------
Filename: main.c
Date: 2007.01.02
Version: 0.0.1
Description:
----------------------------- Version History ---------------------------------
0.0.1: First release
=============================================================================*/
#include "2410addr.h"
#include "target.h"
#include "2410lib.h"
#include "iic.h"
void isr_keyboard(void)
{
unsigned char cmdbuf[3];
unsigned char key;
// 关闭1号外中断
rINTMSK = rINTMSK | BIT_EINT1;
// 等待 IIC 总线空闲
while(rIICCON & IIC_PENDING_BIT)
{
Delay(10);
}
cmdbuf[0]=IIC_ADDR_ZLG7290_KEY;
// 写入ZLG7290寄存器子地址
iicsend(IIC_ADDR_ZLG7290_W,cmdbuf,1);
// 读取键码
iicreceive(IIC_ADDR_ZLG7290_R,&key,1);
// 数字左移
cmdbuf[0]=IIC_ADDR_ZLG7290_CMD0;
cmdbuf[1]=0x11;
iicsend(IIC_ADDR_ZLG7290_W,cmdbuf,2);
// 写入最低位
cmdbuf[0]=IIC_ADDR_ZLG7290_CMD0;
cmdbuf[1]=0x60;
cmdbuf[2]=key;
iicsend(IIC_ADDR_ZLG7290_W,cmdbuf,3);
// 清除中断位
rINTPND = BIT_EINT1;
rSRCPND = BIT_EINT1;
// 打开1号外中断
rINTMSK = rINTMSK & ~BIT_EINT1;
}
void main(void)
{
// Init target board (call this function before anything can go!)
Target_Init();
Uart_Printf("CITK2410 Digitron and Keyboard demo using IIC Bus with ZLG7290.\n");
// 设置键盘中断服务程序地址
pISR_EINT1=(unsigned)isr_keyboard;
// 打开1号外中断
rINTMSK = rINTMSK & ~BIT_EINT1;
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?