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

📄 test.c

📁 该软件源程序示范了如何在嵌入式系统中实现USB-OTG协议
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
   //*************************************************************************
   //
   //                  P H I L I P S   P R O P R I E T A R Y
   //
   //           COPYRIGHT (c)   2005 BY PHILIPS SINGAPORE.
   //                     --  ALL RIGHTS RESERVED  --
   //
   // Project:		ISP1302 Eva Kit
   // File Name:	Test.c
   // Author:		Guo Yang Bin, Email: guo.yang.bin@philips.com
   // Created:		Nov.20, 2005
   // Modified:
   // Revision:		1.0
   //*************************************************************************
*/

#include <stdio.h>
#include <dos.h>

#include "BasicTyp.h"
#include "hal4sys.h"

#include "function.h"
#include "test.h"
/*
//*************************************************************************
//  Public static data
//*************************************************************************
*/

extern D09FLAGS bD09flags;
extern speed;
/*
//*************************************************************************
//  Private static data
//*************************************************************************
*/
/*
//*************************************************************************
//  Subroutines
//*************************************************************************
*/
USHORT chipid, count_rdwr,count_error;
void Test_loop(void)
{
	BOOL in_loop = TRUE;
	UCHAR key, address, ad1, ad2, data, count;
	USHORT temp;
	while( in_loop )
	{
		if( bioskey(1) )
		{
			key = bioskey(0);
			key &= 0xff;
			Hal4Sys_ControlD09Interrupt(0);
			switch(key)
			{
				case 0x1b: /* ESC */
				    	in_loop = FALSE;
						break;
				case 'x':
				case 'X': printf("Pulse ISP1302\n");
					     cprintf("Please select: ");
	              	  Hal4Sys_Set_pule();
						break;
						
				case 'm':
				case 'M':T_Main_Menu();
						break;
				case 'h':
				case 'H':T_Main_Menu();
					    printf("Hard reset ISP1302\n");
                        cprintf("Please select: ");
                    	Hal4Sys_ResetPCBA(); 
						break;
				case 'A':
				case 'a':printf("Pls input address, address = 0x");				
					    ad1 = input();
		                printf("%01x", ad1);
					    ad2 = input();
                        printf("%01x\n", ad2);
                        address =(ad1<<4)|ad2;
                        cprintf("Please select: ");
						break;
				case 'D':
				case 'd':printf("Pls input DATA, data = 0x");
					    ad1 = input();
                        printf("%01x", ad1);
					    ad2 = input();
                        printf("%01x\n", ad2);
                        data = (ad1<<4)|ad2;
                        cprintf("Please select: ");
						break;
				case 'R':
				case 'r':printf("read from address:0x%02x,",address);
						 printf(" data =0x%02x\n",Hal4Sys_Read(address));
                         cprintf("Please select: ");
						 break;
				case 'W' :
				case 'w' :printf("write data 0x%02x ",data);
                        printf("to address 0x%02x\n",address);
                    	Hal4Sys_Write(data, address); // reset all PCBA
                        cprintf("Please select: ");
						break;
				case 'G':
				case 'g':T_Main_Menu();
					     printf("List ISP1109 register\n");
					     Hal4Sys_ControlD09Interrupt(FALSE);
                         chipid = Hal4Sys_Read(0x01);
                         chipid = (chipid<<8)|Hal4Sys_Read(0);
                         printf("Vender ID =0x%04x\n",chipid);

                         chipid = Hal4Sys_Read(0x03);
                         chipid = (chipid<<8)|Hal4Sys_Read(0x02);
                         printf("Product ID =0x%04x\n",chipid);

                         chipid = Hal4Sys_Read(0x15);
                         chipid = (chipid<<8)|Hal4Sys_Read(0x14);
                         printf("Ver ID =0x%04x\n",chipid);
                         printf("Mode register1 04h= 0x%02x\n",Hal4Sys_Read(0x04));

                         printf("Mode register2 12h= 0x%02x\n",Hal4Sys_Read(0x12));

                         printf("Audio register 16h= 0x%02x\n",Hal4Sys_Read(0x16));
                   
                         printf("OTG register 06h= 0x%02x\n",Hal4Sys_Read(0x06));
						 
						 printf("Misc register 18h= 0x%02x\n",Hal4Sys_Read(0x18));

						 printf("Carkit register 1Ah= 0x%02x\n",Hal4Sys_Read(0x1a));

						  printf("Transmit P width 1Ch= 0x%02x\n",Hal4Sys_Read(0x1c));
                          printf("Transmit N width 1Dh= 0x%02x\n",Hal4Sys_Read(0x1d));
						  printf("Receive Polarity Recovery 1eh= 0x%02x\n",Hal4Sys_Read(0x1e));
                          printf("Carkit Interrupt Delay 1fh= 0x%02x\n",Hal4Sys_Read(0x1f));
                          printf("OTG Status 10h= 0x%02x\n",Hal4Sys_Read(0x10));
                    
                         printf("Interrut latch = 0x%02x\n",Hal4Sys_Read(0x0a));
                    
                         printf("Interrupt En_L = 0x%02x\n",Hal4Sys_Read(0x0C));
           
                         printf("Interrupt En_H = 0x%02x\n",Hal4Sys_Read(0x0e));

                         printf("Interrupt Source = 0x%02x\n",Hal4Sys_Read(0x08));
                        cprintf("Please select: ");
						break;


				case 'f':
				case 'F':
						Hal4Sys_ControlD09Interrupt(FALSE);					                  	Hal4Sys_ControlD09Interrupt(TRUE);
					    printf("CLK SWITCH TEST: clock off\n");
                        Hal4Sys_Write(0Xff, 0X0c); 
						Hal4Sys_Write(0Xff, 0X0e); 
                        Hal4Sys_Write(0X01, 0X12); 
                        cprintf("Please select: ");
						break;

				case 'N' :
				case 'n' :	Hal4Sys_ControlD09Interrupt(FALSE);

					    printf("CLK SWITCH TEST: clock on\n");
                        Hal4Sys_Write(0XFF, 0X13); 
                        Hal4Sys_Write(0XFF, 0X13); 
                        cprintf("Please select: ");
						break;

            	case 'L' :
            	case 'l' :printf("interrupt en_low test\n");
                       Hal4Sys_Write(0xff, CLR_INT_LATCH);
                       Hal4Sys_Write(0xff, 0x0f);// clear int en high
                       Hal4Sys_Write(0xff, 0x0c);// set int en low
                   	   Hal4Sys_ControlD09Interrupt(TRUE);
                        cprintf("Please select: ");
						break;
            	case 'U' :
            	case 'u' :printf("interrupt en_high test\n");
                       Hal4Sys_Write(0xff, CLR_INT_LATCH);
                       Hal4Sys_Write(0xff, 0x0d);// clear int en low
                       Hal4Sys_Write(0xff, 0x0e);// set int en high
                  	   Hal4Sys_ControlD09Interrupt(TRUE);
                        cprintf("Please select: ");
						break;
				case 'Z':T_Main_Menu();
					    printf("addressed register access 10K times test \n");
                        printf("address = 0x%02x,   ",address);	
                        printf("data = 0x%02x,   ",data);	
					    Hal4Sys_ControlD09Interrupt(FALSE);
						count_error = 0;
                        Hal4Sys_Write(0x00, address);
                      	for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
						{  
                         Hal4Sys_Write(data, address);

                         ad1 =data;
                         ad1 = Hal4Sys_Read(address);
      
						 if(ad1!=data)
						 {
                         count_error++;

						 Hal4Sys_ResetPCBA(); 
						 printf("data =0x%02x",ad1);
                         Hal4Sys_Write(0x00, address);
						 }
						}
                        printf("error times=0x%04x\n",count_error++);
                        cprintf("Please select: ");
						break;

				case 'z':T_Main_Menu();
					    printf("addressed register access 10K times test \n");
                        printf("address = 0x%02x,   ",address);	
                        printf("data = 0x%02x,   ",data);	
					    Hal4Sys_ControlD09Interrupt(FALSE);
						count_error = 0;
                        Hal4Sys_Write(0xff, address+1);
                      	for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
						{  
                         Hal4Sys_Write(data, address);

                         ad1 =data;
                         ad1 = Hal4Sys_Read(address);
      
						 if(ad1!=data)
						 {
                         count_error++;

						 Hal4Sys_ResetPCBA(); 
						 printf("data =0x%02x",ad1);
                         Hal4Sys_Write(0xff, address+1);
						 }
						}
                        printf("error times=0x%04x\n",count_error++);
                        cprintf("Please select: ");
						break;
				case 'p':
				case 'P':T_Main_Menu();
					    printf("ISP1109 register access 10K times test \n");
					    Hal4Sys_ControlD09Interrupt(FALSE);
						count_error = 0;
                       	for(count_rdwr=0; count_rdwr<0x0400; count_rdwr++)
						{       
                         chipid = Hal4Sys_Read(0x01);
                         chipid = (chipid<<8)|Hal4Sys_Read(0);
						 if(chipid !=0x04cc)
						 {
						      Hal4Sys_ResetPCBA(); 
							  printf("Vender ID=0x%04x ",chipid);
                              count_error++;

						 }
						}
                         printf("Vender ID error times=0x%04x\n",count_error++);

⌨️ 快捷键说明

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