?? main.c
字號:
/*
;************************************************************************************************************
;* 北京知天行科技有限公司
;* 研 發 部
;*
;* http://www.zt-training.com
;*
;*--------------------------------------------- 文件信息 ----------------------------------------------------
;*
;* 文件名稱 : MAIN.c
;* 文件功能 : 所有應用程序的頭文件均加在此文件中
;* 補充說明 :
;*-------------------------------------------- 最新版本信息 -------------------------------------------------
;* 修改作者 : ARM7開發小組
;* 修改日期 : 2004/04/25
;* 版本聲明 : V1.0.1
;*-------------------------------------------- 歷史版本信息 -------------------------------------------------
;* 文件作者 : ARM7開發小組
;* 創建日期 : 2004/04/20
;* 版本聲明 : v1.0.0
;*-----------------------------------------------------------------------------------------------------------
;*-----------------------------------------------------------------------------------------------------------
;************************************************************************************************************
;*/
#include "..\inc\config.h"
/*
*************************************************************************************************************
- 函數名稱 : Main(void)
- 函數說明 : 系統的主程序入口
- 輸入參數 : 無
- 輸出參數 : 無
*************************************************************************************************************
*/
unsigned int iiccount=4;
unsigned int iGetAck=0;
unsigned char key=0;
void __irq IRQ_I2C2(void)
{
if((iiccount--)==0) //如果數據寫完
{
rIICSTAT=0xd0; //停止主設備發送傳輸
rIICCON=0xaf; //恢復 IIC 操作
Delay(1); //等待,直到停止條件起效
}
// while (rIICSTAT & 0x01);
rIICCON=0xaf; //釋放 IIC 總線操作
rI_ISPC = BIT_IIC;
}
unsigned char Receive()
{
unsigned KeyValue1=0;
unsigned KeyValue2=0;
// unsigned KeyValue3=0;
// rPCONF = 0x827EA;
// rPUPF = 0x03;
rIICCON = 0xaf;
//rIICDS = 0x80; //07/10/05
rIICDS = 0x71;
rIICSTAT= 0xf0;
Delay(2);
//while(rIICSTAT&0x01);
// rIICDS = 0x10; //07/10/05
rIICDS = 0x01;
rIICCON = 0xaf;
Delay(2);
// while(rIICSTAT&0x01);
// rIICCON = 0xaf;
//
//rIICDS = 0x80; //07/10/05
rIICDS = 0x71;
rIICSTAT= 0xb0;
// rIICSTAT= 0xD0; //07/10/05
rIICCON = 0xaf;
Delay(2);
//while(rIICSTAT&0x01);
// rIICCON = 0x2f;
// Delay(2);
rIICCON = 0xaf;
// rIICCON = 0x2f;
Delay(2);
KeyValue1=rIICDS;
rIICCON = 0x2f;
Delay(2);
// rIICCON = 0xaf;
KeyValue2=rIICDS;
// rIICCON = 0xaf ;
// Delay(2);
// rIICCON = 0xaf;
// KeyValue3=rIICDS;
//rIICCON = 0x2f ;
// Delay(10);
//
// KeyValue3=rIICDS;
rIICSTAT= 0x90;
rIICCON = 0xaf;
Delay(6);
return KeyValue1;
}
unsigned char key1=0;
void __irq IRQ_Iint0(void)
{
// if((iiccount--)==0) //如果數據寫完
// {
// rIICSTAT=0xd0; //停止主設備發送傳輸
// rIICCON=0xaf; //恢復 IIC 操作
// Delay(1); //等待,直到停止條件起效
// }
// while (rIICSTAT & 0x01);
// rIICCON=0xaf; //釋放 IIC 總線操作
key1=Receive();
rI_ISPC = BIT_EINT0;
}
void Init0_Init()
{
if (( rINTPND & BIT_EINT0) )
{
rI_ISPC = BIT_EINT0;
}
rINTMSK = ~(BIT_GLOBAL | BIT_EINT0 );
// pISR_IIC = (unsigned int)IRQ_I2C1; // 設置I2C中斷向量地址
pISR_EINT0 = (unsigned int)IRQ_Iint0;
}
void SendData(unsigned char addr,unsigned char data,unsigned char data1)
{
iiccount = 4;
rIICCON = 0xaf; // 使能I2C中斷 enable ACK generation IICCLK=Fmclk/16
// rIICDS = 0x80;
rIICDS = 0x70; //write slave address to IICDS
rIICSTAT = 0xF0; //主設備發送模式,產生起始條件,使能發送/接收
Delay(1);
rIICCON = 0xaf;
rIICDS = addr;
Delay(1);
rIICCON = 0xaf;
rIICDS = data;
Delay(1);
rIICCON = 0xaf;
rIICDS = data1;
Delay(1);
rIICCON = 0xaf;
rIICSTAT = 0xD0;
}
/*
void SendData(unsigned char addr1,unsigned char addr2,unsigned char data)
{
iGetAck=0;
// rIICCON = 0xaf; // 使能I2C中斷 enable ACK generation IICCLK=Fmclk/16
// rIICDS = 0x80;
rIICDS = addr1; //write slave address to IICDS
rIICSTAT = 0xF0; //主設備發送模式,產生起始條件,使能發送/接收
Delay(5);
// while(iGetAck==0);
iGetAck=0;
rIICDS = addr2;
rIICCON = 0xaf;
Delay(5);
// while(iGetAck==0);
iGetAck=0;
rIICDS = data;
rIICCON = 0xaf;
Delay(5);
// while(iGetAck==0);
iGetAck=0;
rIICSTAT = 0xd0;
rIICCON = 0xaf;
Delay(5);
}
*/
void I2C_Init()
{
if (( rINTPND & BIT_IIC) )
{
rI_ISPC = BIT_IIC;
}
rINTMSK = ~(BIT_GLOBAL | BIT_IIC );
// pISR_IIC = (unsigned int)IRQ_I2C1; // 設置I2C中斷向量地址
pISR_IIC = (unsigned int)IRQ_I2C2;
}
void Main()
{
Target_Init();
Init0_Init();
//I2C_Init();
// SendData(0x07,0x60,0xc0);
//SendData(0x07,0x61,0x41);
// SendData(0x10,0x6e,0x6E);
SendData(0x07,0x60,key);
while(1)
{
key=Receive();
//Delay(5);
/**8
//SendData(0x10,0x6e,0x6E);
switch(key)
{
case 1:
SendData(0x07,0x60,0x00);
SendData(0x07,0x61,0x03);
SendData(0x07,0x62,0x09);
SendData(0x07,0x63,0x00);
SendData(0x07,0x64,0x07);
SendData(0x07,0x65,0x00);
SendData(0x07,0x66,0x00);
SendData(0x07,0x67,0x02);
Delay(5000);
SendData(0x07,0x60,0x01);
SendData(0x07,0x61,0x05);
SendData(0x07,0x62,0x00);
SendData(0x07,0x63,0x00);
SendData(0x07,0x64,0x00);
SendData(0x07,0x65,0x01);
SendData(0x07,0x66,0x03);
SendData(0x07,0x67,0x00);
break;
//case 2;
// case 3;
default:
break;
}
***/
/* SendData(0x07,0x60,0x00);
SendData(0x07,0x61,0x03);
SendData(0x07,0x62,0x09);
SendData(0x07,0x63,0x00);
SendData(0x07,0x64,0x07);
SendData(0x07,0x65,0x00);
SendData(0x07,0x66,0x00);
SendData(0x07,0x67,0x02);
Delay(5000);
SendData(0x07,0x60,0x01);
SendData(0x07,0x61,0x05);
SendData(0x07,0x62,0x00);
SendData(0x07,0x63,0x00);
SendData(0x07,0x64,0x00);
SendData(0x07,0x65,0x01);
SendData(0x07,0x66,0x03);
SendData(0x07,0x67,0x00);
Delay(5000);
//SendData(0x70,0x10,0x6E);
*/
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -