OpenCores
URL https://opencores.org/ocsvn/z80control/z80control/trunk

Subversion Repositories z80control

[/] [z80control/] [trunk/] [CII_Starter_USB_API_v1/] [SW/] [Test_Page.cpp] - Rev 12

Compare with Previous | Blame | View Log

//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Test_Page.h"
#include "Main.h"
#include "PS2_Thread.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
   : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{
   Form1->Show_All_Button(false);
   Button1->Enabled=false;
   Form1->PS2_REC->Suspend();
   Form1->USB1.Reset_Device(0);
   int i;
   Form1->Sdram_Multi->ItemIndex=0;
   Form1->Flash_Multi->ItemIndex=0;
   Form1->Button13Click(this);
   //---------------------------------------------------
   // ToDo : LED Test
   if(CheckBox1->Checked)
   {
      Screen->Cursor=crHourGlass;
      for(i=0;i<144;i++)
      {
         switch(i%9)
         {
            case 0 : Form1->D1->Checked=!Form1->D1->Checked;
                     Form1->DR0->Checked=!Form1->DR0->Checked;
                     Form1->DR9->Checked=!Form1->DR9->Checked;
                     break;
            case 1 : Form1->D2->Checked=!Form1->D2->Checked;
                     Form1->DR1->Checked=!Form1->DR1->Checked;
                     break;
            case 2 : Form1->D3->Checked=!Form1->D3->Checked;
                     Form1->DR2->Checked=!Form1->DR2->Checked;
                     break;
            case 3 : Form1->D4->Checked=!Form1->D4->Checked;
                     Form1->DR3->Checked=!Form1->DR3->Checked;
                     break;
            case 4 : Form1->D5->Checked=!Form1->D5->Checked;
                     Form1->DR4->Checked=!Form1->DR4->Checked;
                     break;
            case 5 : Form1->D6->Checked=!Form1->D6->Checked;
                     Form1->DR5->Checked=!Form1->DR5->Checked;
                     break;
            case 6 : Form1->D7->Checked=!Form1->D7->Checked;
                     Form1->DR6->Checked=!Form1->DR6->Checked;
                     break;
            case 7 : Form1->D8->Checked=!Form1->D8->Checked;
                     Form1->DR7->Checked=!Form1->DR7->Checked;
                     break;
            case 8 : Form1->DR8->Checked=!Form1->DR8->Checked;
         }
         Form1->Button2Click(this);
         Sleep(20);
         Application->ProcessMessages();
      }
      Form1->D1->Checked=false;
      Form1->D2->Checked=false;
      Form1->D3->Checked=false;
      Form1->D4->Checked=false;
      Form1->D5->Checked=false;
      Form1->D6->Checked=false;
      Form1->D7->Checked=false;
      Form1->D8->Checked=false;
      Form1->DR0->Checked=false;
      Form1->DR1->Checked=false;
      Form1->DR2->Checked=false;
      Form1->DR3->Checked=false;
      Form1->DR4->Checked=false;
      Form1->DR5->Checked=false;
      Form1->DR6->Checked=false;
      Form1->DR7->Checked=false;
      Form1->DR8->Checked=false;
      Form1->DR9->Checked=false;
      Form1->Button2Click(this);
      Screen->Cursor=crArrow;
      ShowMessage("LED Test OK!!");
   }
   //---------------------------------------------------
   // ToDo : SEG 7 Test
   if(CheckBox2->Checked)
   {
      Screen->Cursor=crHourGlass;
      for(i=0;i<33;i++)
      {
         Form1->DIG_1->ItemIndex=i%16;
         Form1->DIG_2->ItemIndex=i%16;
         Form1->DIG_3->ItemIndex=i%16;
         Form1->DIG_4->ItemIndex=i%16;
         Form1->Button1Click(this);
         Sleep(100);
         Application->ProcessMessages();
      }
      Screen->Cursor=crArrow;
      ShowMessage("7 SEG Test OK!!");
   }
   //---------------------------------------------------
   // ToDo : SDRAM Test
   if(CheckBox5->Checked)
   {
      Screen->Cursor=crHourGlass;
      bool Fail=false;
      for(i=0;i<128;i++)
      {
         Form1->oSDR_ADDR->Text=IntToHex(i*i*i*4,6);
         Form1->oSDR_DATA->Text=IntToHex(4660,4);
         Form1->Button9Click(this);
         Form1->Button10Click(this);
         if(Form1->oSDR_DATA->Text!=Form1->iSDR_DATA->Text)
         {
            Fail=true;
            break;
         }
         Application->ProcessMessages();
      }
      Form1->oSDR_ADDR->Text="0";
      Form1->oSDR_DATA->Text="0000";
      Form1->iSDR_DATA->Text="0000";
      Screen->Cursor=crArrow;
      if(!Fail)
      ShowMessage("SDRAM Test Passed!!");
      else
      ShowMessage("SDRAM Test Failed!!");
   }
   //---------------------------------------------------
   // ToDo : SRAM Test
   if(CheckBox3->Checked)
   {
      Screen->Cursor=crHourGlass;
      bool Fail=false;
      for(i=0;i<128;i++)
      {
         Form1->oSR_ADDR->Text=IntToHex(i*i,6);
         Form1->oSR_DATA->Text=IntToHex(4660,4);
         Form1->Button16Click(this);
         Form1->Button17Click(this);
         if(Form1->oSR_DATA->Text!=Form1->iSR_DATA->Text)
         {
            Fail=true;
            break;
         }
         Application->ProcessMessages();
      }
      Form1->oSR_ADDR->Text="0";
      Form1->oSR_DATA->Text="0000";
      Form1->iSR_DATA->Text="0000";
      Screen->Cursor=crArrow;
      if(!Fail)
      ShowMessage("SRAM Test Passed!!");
      else
      ShowMessage("SRAM Test Failed!!");
   }
   //---------------------------------------------------
   // ToDo : FLASH Test
   if(CheckBox4->Checked)
   {
      Screen->Cursor=crHourGlass;
      int Error=0;
      //  Erase FLASH
      Form1->Button3Click(this);
      while(Form1->HexToInt(Form1->iFL_DATA->Text)<128)
      {
         Form1->Button4Click(this);
         Application->ProcessMessages();
         Sleep(100);
      }
      Form1->iFL_DATA->Text="00";
      for(i=0;i<128;i++)
      {
         Form1->oFL_ADDR->Text=IntToHex(i*i*4,6);
         Form1->oFL_DATA->Text=IntToHex(0xA5,2);
         Form1->Button5Click(this);
         Form1->Button5Click(this);
         Form1->Button4Click(this);
         if(Form1->oFL_DATA->Text!=Form1->iFL_DATA->Text)
         Error++;
         Application->ProcessMessages();
      }
      Form1->oFL_ADDR->Text="0";
      Form1->oFL_DATA->Text="00";
      Form1->iFL_DATA->Text="00";
      Screen->Cursor=crArrow;
      if(Error<16)
      ShowMessage("FLASH Test Passed.");
      else
      ShowMessage("FLASH Test Failed.");
   }
   //---------------------------------------------------
   // ToDo : LCD Test
   if(CheckBox6->Checked)
   {
      Screen->Cursor=crHourGlass;
      char x[8];
      int Text_Len;
      AnsiString Str1;
      x[1]=LCD;
      x[2]=0x12;
      x[3]=0x34;
      x[4]=0x56;
      x[5]=0x00;
      x[6]=0x00;
      x[7]=DISPLAY;
      Form1->PS2_REC->Suspend();
      Form1->USB1.Reset_Device(0);
      for(int j=0;j<6;j++)
      {
         x[0]=LCD_CMD;
         //------------------- LCD Init ---------------------------
         // Function Set
         x[6]=0x38;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         // Display Set
         x[6]=0x0C;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         // Clear Display
         x[6]=0x01;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         // Mode Set
         x[6]=0x06;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         // Return to Line 1 Start
         x[6]=0x80;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         Sleep(200);
         //---------------- Show LCD Line1 -----------------------
         x[0]=LCD_DAT;
         for(i=1;i<=16;i++)
         {
            x[6]=0xFF;
            Form1->USB1.Write_Data(x,8,0,true);
         }
         //---------------- Change to Line2 ----------------------
         x[0]=LCD_CMD;
         // Return to Line 2 Start
         x[6]=0xC0;
         Form1->USB1.Write_Data(x,8,0,true);
         Sleep(2);
         //---------------- Show LCD Line2 -----------------------
         x[0]=LCD_DAT;
         for(i=1;i<=16;i++)
         {
            x[6]=0xFF;
            Form1->USB1.Write_Data(x,8,0,true);
         }
         Sleep(500);
      }
      //-------------------------------------------------------
      Form1->PS2_REC->Resume();
      Screen->Cursor=crArrow;
      ShowMessage("LCD Test OK!!");
   }
   //---------------------------------------------------
   Button1->Enabled=true;
   Form1->Show_All_Button(true);
}
//---------------------------------------------------------------------------
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.