⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 三星ARM2410的键盘及数码管控制程序
💻 C
字号:
/*=============================================================================
--------------------------------- 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -