📄 eint.c
字号:
/*****************************************
NAME: eint.c
DESC: External interrupt test
HISTORY:
2001.04.03:purnnamu: draft ver 0.0
*****************************************/
#include <string.h>
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
void delay(U32 time)
{
U32 i;
for(;time>0;time--)
for(i=0;i<39;i++);
}
void iicconfig(void)
{
rGPEUP = 0xc000; //Pull-up disable
rGPECON = 0xa0000000; //GPE15:IICSDA , GPE14:IICSCL
rIICCON = 0xe0;
rIICSTAT = 0x10;
rEINTMASK = 0xffffff;
rINTMSK = BIT_ALLMSK;
Uart_Printf("Config port complete.\n");
Uart_Printf("complete.\n");
}
void iicwrite(U8 addr,U8 data)
{
rIICSTAT |= 0xc0;
rIICDS = 0xa0;
rIICSTAT = 0xf0;
while(rIICCON != 0xf0);
rIICDS = addr;
rIICCON = 0xe0;
while(rIICCON != 0xf0);
rIICDS = data;
rIICCON = 0xe0;
while(rIICCON != 0xf0);
rIICSTAT = 0xd0;
rIICCON = 0xe0;
Delay(1);
delay(1000);
}
U8 iicread(U8 addr)
{
U8 i;
rIICSTAT |= 0xc0;
rIICDS = 0xa0;
rIICCON = 0xe0;
rIICSTAT = 0xf0;
while(rIICCON != 0xf0);
rIICDS = addr;
rIICCON = 0xe0;
while(rIICCON != 0xf0);
rIICDS = 0xa1;
rIICSTAT = 0xb0;
rIICCON = 0xe0;
while(rIICCON != 0xf0);
rIICCON = 0x60;
while(rIICCON != 0x70);
i = rIICDS;
rIICSTAT = 0x90;
rIICCON = 0x60;
Delay(1);
return i;
}
void iictest(void)
{
unsigned int i = 0;
iicconfig();
Uart_Printf("Write AT24C04....\n");
// for(i=0;i<256;i++)
// iicwrite(i,0xaa);
Uart_Printf("\n\nRead AT24C04....\n");
for(i=0;i<256;i++)
Uart_Printf("%x ",iicread(i));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -