www.pudn.com > bootloader.rar > led.c


/* ============================================================================*/  
/*          Copyright (C) 2004 YINXING TECHNOLOGY CO., LTD                     */  
/*                          All Rights Reserved.                               */  
/* ----------------------------------------------------------------------------*/  
/* ============================================================================*/  
 
 
 
 
 
#include  
 
#define ADDR_PMST  0x1d  
 
ioport unsigned port8000;     /*  for CTRL word */ 
ioport unsigned porte000;     /*  for DC MOTOR run */ 
ioport unsigned portc000;     /*  for LEDs show */ 
ioport unsigned portf000;     /*  for STEPMOTOR */ 
 
void mydelay() 
{    /*  when clkout=10MHz, about 0.2s  */ 
   int i,j; 
 
   for(i=0;i<500;i++) 
     for(j=0;j<1000;j++); 
 
} 
    
 
void test_led() 
{   int led=0,i=0,j=0; 
 
again:  
    for(i=0;i<5;i++)    /* all LEDs flash 5 times  */ 
    { 
       portc000=0; 
       mydelay(); 
       portc000=0xffff; 
       mydelay(); 
    }    
     
    for(j=0;j<5;j++)   /*  LEDs bright one by one  */ 
    { 
       portc000=0;     /*  shut down all led ! */ 
       led=1; 
  
       for(i=0;i<16;i++) 
       {  
          portc000=led;     /*  bright one LED */ 
          mydelay();        /*  delay 0.5 s  */   
          portc000=0; 
          led=led << 1; 
       } 
     }  
 
    for(i=0;i<5;i++)        /*  flash all again */ 
    { 
       portc000=0; 
       mydelay(); 
       portc000=0xffff; 
       mydelay(); 
    }    
 
    portc000=0;         /*  close all LEDs  */ 
    for(i=0;i<20;i++) 
       mydelay(); 
   
    goto again;      
                   
                                               
} 
     
    
void main() 
{  int *pmst; 
 
   pmst= (int *)ADDR_PMST; 
   *pmst=0x3fa0;     /*  interrupt vector in 0x3f80 !  */ 
    
   test_led();  
         
}