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

📄 main.c

📁 此为周立功7290芯片的控制程序 应用于S3C44B0板子
💻 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 + -