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

📄 test.c

📁 这是周立功发布的LPC2200系列开发办中LPC2210这一款最新的所有板级测试代码
💻 C
📖 第 1 页 / 共 2 页
字号:
           
          ch = (i>>16)&0x0F;
          ZLG7290_SendData(0x10+4, DISP_TAB[ch]);
           
          ch = (i>>12)&0x0F;
          ZLG7290_SendData(0x10+3, DISP_TAB[ch]);
           
          ch = (i>>8)&0x0F;
          ZLG7290_SendData(0x10+2, DISP_TAB[ch]);
           
          ch = (i>>4)&0x0F;
          ZLG7290_SendData(0x10+1, DISP_TAB[ch]);
           
          ch = i&0x0F;
          ZLG7290_SendData(0x10+0, DISP_TAB[ch]); 
           
          DelayNS(50);
       }
        
       cp++;
    }
    
    ZLG7290_SendData(0x10+2, DISP_TAB[0x0F]);
    ZLG7290_SendData(0x10+1, DISP_TAB[0x0F]);
    ZLG7290_SendData(0x10+0, DISP_TAB[0x0F]);
    DelayNS(10);    
}


/****************************************************************************
* 名称:SysCheck_NET()
* 功能:NET测试。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  SysCheck_NET(void)
{  uint8  i;

   // 清除LED屏幕显示
   for(i=0; i<8; i++) disp_buf[i] = 0x1F;
   ZLG7290_SendBuf(disp_buf,8);
   
   // 检测NET接口。显示"NEt....."或显示"NEt..Err"
   ZLG7290_SendData(0x10+7, CHAR_N);
   ZLG7290_SendData(0x10+6, CHAR_E);
   ZLG7290_SendData(0x10+5, CHAR_t);
   ZLG7290_SendData(0x10+4, CHAR_DOT);
   
   if(NetTest() == 1)
   {  ZLG7290_SendData(0x10+3, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+2, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+1, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+0, CHAR_DOT);
      DelayNS(5);
   }
   else
   {  ZLG7290_SendData(0x10+3, CHAR_DOT);
      BeepRun(5);   
      
      ZLG7290_SendData(0x10+2, CHAR_E);
      ZLG7290_SendData(0x10+1, CHAR_r);
      ZLG7290_SendData(0x10+0, CHAR_r);
      BeepRun(5);
      
      DelayNS(50);
   }
   DelayNS(10);
}


/****************************************************************************
* 名称:SysCheck_USB()
* 功能:USB测试。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  SysCheck_USB(void)
{  uint8  i;

   // 清除LED屏幕显示
   for(i=0; i<8; i++) disp_buf[i] = 0x1F;
   ZLG7290_SendBuf(disp_buf,8);
   
   // 检测USB接口。显示"USb....."或显示"USb..Err"
   ZLG7290_SendData(0x10+7, CHAR_U);
   ZLG7290_SendData(0x10+6, CHAR_S);
   ZLG7290_SendData(0x10+5, CHAR_b);
   ZLG7290_SendData(0x10+4, CHAR_DOT);
   
   if(D12Test() == 0)
   {  ZLG7290_SendData(0x10+3, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+2, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+1, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+0, CHAR_DOT);
      DelayNS(5);
   }
   else
   {  ZLG7290_SendData(0x10+3, CHAR_DOT);
      BeepRun(5);   
      
      ZLG7290_SendData(0x10+2, CHAR_E);
      ZLG7290_SendData(0x10+1, CHAR_r);
      ZLG7290_SendData(0x10+0, CHAR_r);
      BeepRun(5);
      
      DelayNS(50);
   }
   DelayNS(10);
}


/****************************************************************************
* 名称:SysCheck_E2PROM()
* 功能:E2PROM测试。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  SysCheck_E2PROM(void)
{  uint8  data_buf[20];	
   uint8  err;
   uint8  i;
    
   // 清除LED屏幕显示
   for(i=0; i<8; i++) disp_buf[i] = 0x1F;
   ZLG7290_SendBuf(disp_buf,8);
   
   // 检测NET接口。显示"C02....."或显示"C02..Err"
   ZLG7290_SendData(0x10+7, CHAR_C);
   ZLG7290_SendData(0x10+6, CHAR_0);
   ZLG7290_SendData(0x10+5, CHAR_2);
   ZLG7290_SendData(0x10+4, CHAR_DOT);
   
   for(i=0; i<10; i++) data_buf[i] = i+'0';
   ISendStr(CAT24WC02, 0x00, data_buf, 10);	// 在0x00地址处写入10字节数据
   DelayNS(5);                      		// 等待写周期结束
   ZLG7290_SendData(0x10+3, CHAR_DOT);

   for(i=0; i<10; i++) data_buf[i] = 0;
   IRcvStr(CAT24WC02, 0x00, data_buf, 10);	// 在0x00地址处读出10字节数据 
  
   // 校验读出的数据
   err = 0;
   for(i=0; i<10; i++)
   {  if(data_buf[i]!=(i+'0')) err = 1;
   }
   
   if(err == 0)
   {  ZLG7290_SendData(0x10+2, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+1, CHAR_DOT);
      DelayNS(5);
      ZLG7290_SendData(0x10+0, CHAR_DOT);
      DelayNS(5);
   }
   else
   {  BeepRun(5);   
      
      ZLG7290_SendData(0x10+2, CHAR_E);
      ZLG7290_SendData(0x10+1, CHAR_r);
      ZLG7290_SendData(0x10+0, CHAR_r);
      BeepRun(5);
      
      DelayNS(50);
   }
   
   DelayNS(10);
}



/****************************************************************************
* 名称:main()
* 功能:EasyARM2200开发板出厂编程程序。(请使用RelOutChip生成目标)
* 说明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位);
*      在CONFIG.H文件中包含I2CINT.H、ZLG7290.H等。
****************************************************************************/
int  main(void)
{  uint8  i, j;
   uint8  bak;
   
   PINSEL0 = 0x00000000;			// 设置管脚连接,使用I2C口
   PINSEL1 = 0x00000000;			
   IO0DIR = SPI_IOCON|BEEPCON;		// 设置SPI控制口和蜂鸣器控制口为输出
   IO0SET = BEEPCON;
   HC595_SendDat(0xFF);				// LED1--LED8显示灭
   
   I2C_Init(30000);                 // I2C配置及端口初始化
   DelayNS(5);
   
   SysCheck_RAM();					
   BeepRun(10);
   
   SysCheck_NET();
   
   SysCheck_USB();
   
   SysCheck_E2PROM(); 
     
 while(1)   
 { 
   // 全显示0、2、4、6、8测试 
   HC595_SendDat(0xFF);				// LED1--LED8显示灭
   for(i=0; i<=8; i=i+2)
   {  for(j=0; j<8; j++) disp_buf[j] = i;
      ZLG7290_SendBuf(disp_buf,8);
      DelayNS(10);
   }
   
   // 显示一位8,然后从左到右移动,再从右到左移动
   for(j=0; j<8; j++) disp_buf[j] = 0x1F;		// 缓冲区填充0x1F (0x1F为不显示)
   bak = 0x01;
   
   disp_buf[7] = 0x08;							// 显示第一位为8字
   ZLG7290_SendBuf(disp_buf,8);
   HC595_SendDat(~bak);
   DelayNS(5);
   
   for(i=7; i>0; i--)
   {  disp_buf[i] = 0x1F;			
      disp_buf[i-1] = 0x08;						// 显示第i-1位为8字
      bak = bak<<1;
      
	  ZLG7290_SendBuf(disp_buf,8);
      HC595_SendDat(~bak);
      DelayNS(5);
   }
   
   for(i=0; i<7; i++)
   {  disp_buf[i] = 0x1F;			
      disp_buf[i+1] = 0x08;						// 显示第i+1位为8字
      bak = bak>>1;
      
	  ZLG7290_SendBuf(disp_buf,8);
	  HC595_SendDat(~bak);
      DelayNS(5);
   }
   
   
   // 显示流水灯,循环转动,LED1--LED8配合
   for(i=0; i<20; i++)
   {  for(j=0; j<8; j++)
      {  ZLG7290_SendData(0x10+j, playled1[j]);
      }
	  HC595_SendDat(~pled8a);
      DelayNS(5);
      
      for(j=0; j<8; j++)
      {  ZLG7290_SendData(0x10+j, playled2[j]);
      }
	  HC595_SendDat(~pled8b);
      DelayNS(5);
   }
   HC595_SendDat(0xFF);

   // 显示"7 6 5 4 3 2 1 0"
   for(i=0; i<8; i++) disp_buf[i] = i;
   ZLG7290_SendBuf(disp_buf,8);
   DelayNS(50);
  
   // 从右到左出现“LPC2210F”字样   
   for(i=0; i<8; i++) disp_buf[i] = 0x1F;
   ZLG7290_SendBuf(disp_buf,8);
   DelayNS(10);
   
   DispDataBitLSL(0x14, 7, 1);
   DispDataBitLSL(0x16, 6, 1);
   DispDataBitLSL(0x0C, 5, 1);
   DispDataBitLSL(0x02, 4, 1);
   DispDataBitLSL(0x02, 3, 1);
   DispDataBitLSL(0x01, 2, 1);
   DispDataBitLSL(0x00, 1, 1);
   DispDataBitLSL(0x0F, 0, 1);
   DelayNS(50);
 }    
   
   return(0);					
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -