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

📄 init.c

📁 银杏科技有限公司dsp实验开发板的实验程序
💻 C
📖 第 1 页 / 共 2 页
字号:
   pllx100();		/*  change clk=100MHz  */
   
   
   switch(allmem)
   {
      case 0:       /*  check all mem !  */
              
      case 1:       /*  only check PROGRAM 18000h  */
              memok=chk_prog18000();
              if(memok == 1)
                 test_ret=1;      /*  prog 18000h is ok ! */
              else
                 test_ret=-1;     /*  prog 18000h maybe error */   
              break;
      case 2:       /*  only check PROGRAM 28000h  */
              memok=chk_prog28000();
              if(memok == 1)
                 test_ret=1;      /*  prog 28000h is ok ! */
              else
                 test_ret=-2;     /*  prog 28000h maybe error */   
              break;
      case 3:       /*  only check DATA SRAM 8000h */
              memok=chk_data8000();
              if(memok == 1)
                 test_ret=1;      /*  data 8000h is ok ! */
              else
                 test_ret=-3;     /*  data 8000h maybe error */   

              break;
      default:
              test_ret=0;      /*  return 0, not check the mem !  */                       
   }
   
   pllx10();
   return(test_ret);      
}

void test_DCmotor()
{ int i,j,k;

   CtrlWord |= 0x1;         /* make D0=1  */
   port8000=CtrlWord;       /* start DC MOTOR power */
   
   i=lcd_printf(3,0,"摆动",1);   /*  wait for send end ! */
   for(i=0;i<20;i++)       /*  right and left */
   {
      porte000=0;
      mydelay();
      porte000=1;
      mydelay();
   }   
   
   i=lcd_printf(3,2,"正转",1);
   porte000=1;              /*  rotate + for 5s  */
   for(i=0;i<25;i++)       /* delay about 5s  */
     mydelay();
   
   i=lcd_printf(3,4,"反转",1);
   porte000=0;
   for(i=0;i<25;i++)       /*   rotate - for 5s   */
     mydelay();
     

   for(i=0;i<4;i++)
   {
      porte000=0;
      mydelay();
      porte000=1;
      mydelay();
   }   

   i=lcd_printf(3,6,"慢转",1); 
   for(k=0;k<4;k++)          /* rotate slowly  */
     for(i=0;i<1000;i++)
     {   porte000=1;        
         for(j=0;j<5000;j++);
         porte000=0;
         for(j=0;j<1000;j++);
       
     }    
     
   CtrlWord &= 0xfffe;      /*  make D0=0;  */
   port8000=CtrlWord;        
}

void test_stepmotor()
{  int motor=0xf,i,j,k;

   i=lcd_printf(3,1,"反转. ",1);

//   portf000=1;
   motor=1;
   for(i=0;i<5;i++)
   {
      for(j=0;j<4;j++)
      {   
         portf000=motor;     /*  send drive pluse to motor */ 
         motor=motor<<1;
         for(k=0;k<4;k++)    /*  delay */
            mydelay();
         if(motor == 0x10)
             motor=1;   
      }      
   }
   
   i=lcd_printf(3,5,"正转. ",1);
   
   portf000=0; 
   motor=0x8;
   for(i=0;i<5;i++)
   {
      for(j=0;j<11;j++)
      {   
         portf000=motor;     /*  send drive pluse to motor */ 
         motor=motor >> 1;
         for(k=0;k<2;k++)    /*  delay */
            mydelay();
         if(motor == 0x0)
            motor=0x8;
               
      }      
   } 
 

}

void test_led()
{   int led=0,i=0,j=0;

    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  */              
}
    
   
void main()
{  int i,key;
    
        
    /* pllx100();  */

    init_start();
 
    lcd_clr(1);    /*  clear LCD display  */
    
    for(i=0;i<5;i++)
    {
    led_printf("",1);
    mydelay();
    mydelay();
    led_printf("85450520",1);
    mydelay();
    mydelay();
    }
    
    led_printf("",1);
    mydelay();        /*  give MCU time to end clearing LED */ 
/*    i=lcd_printf(1,0,"1",1);
    mydelay();
    strcpy(buf,"1 ");
    lcd_printf(2,0,buf,1);
*/          
    i=lcd_printf(1,0,"你好,银杏科技 !",1);   /*  wait for send end ! */
    mydelay();
    
    i=lcd_printf(2,0,"下面测试键盘:",1);
    mydelay();
    
    i=lcd_printf(3,0,"请依次按下所有键",1);   /*  wait for send end ! */
    mydelay();  
    
    i=lcd_printf(4,0,"      ESC退出",1);
    mydelay();

    for(i=0;i<32;i++)
    {   
        do{
            key=get_key(1);
          }while(key==0);
        
      //  mydelay1();           /*  wait for MCU ... */
        
        if(i==0)
        {  
            lcd_clr(1);           /*  clear LCD display */
            mydelay();
            
        }          
        
        key_shown(key & 0xff);

        if(IsQuitKey ==1 )
           break;
        
      }    
    
    for(i=0;i<2;i++)
       mydelay();
    lcd_clr(1);    /*  clear LCD display  */
    mydelay();

    i=lcd_printf(1,0,"正在测试存储器,",1);   /*  wait for send end ! */
    mydelay();
    i=lcd_printf(2,0,"请稍候. . . ",1);   /*  wait for send end ! */
    mydelay();
    
    
    i=test_mem(1);		 /*  test ext_sram ok? PROG-18000h */
                         /*  if return=1, then ext_sram ok ! */
    if(i == 1)
       lcd_printf(2,0,"程序18000h..正确",1);
    else
       lcd_printf(2,0,"程序18000h..有错",1);   
    error_sound(i);		/* if ok, one shot sound, then two long sound */


    i=test_mem(2);		 /*  test ext_sram ok? PROG-28000h */
                         /*  if return=1, then ext_sram ok ! */
    if(i == 1)
       lcd_printf(3,0,"程序28000h..正确",1);
    else
       lcd_printf(3,0,"程序28000h..有错",1);   

    error_sound(i);		/* if ok, one shot sound, then two long sound */
    
    i=test_mem(3);       /*  test ext_sram ok ? data-8000h  */
    if(i == 1)
       lcd_printf(4,0,"数据8000h...正确",1);
    else
       lcd_printf(4,0,"数据8000h...有错",1);   

    error_sound(i);		/* if ok, one shot sound, then two long sound */
     
    for(i=0;i<2;i++)
       mydelay();                     

    //goto test;
                                                                 
    lcd_clr(1);    /*  clear LCD display  */
    mydelay();
    i=lcd_printf(1,0,"正在测试直流电机",1);   /*  wait for send end ! */
    mydelay();
    i=lcd_printf(2,0,"请稍候. . . ",1);   /*  wait for send end ! */
    mydelay();
    test_DCmotor();      /*  drive DC motor to run */

test:
    lcd_clr(1);    /*  clear LCD display  */
    mydelay();
    i=lcd_printf(1,0,"正在测试步进电机",1);   /*  wait for send end ! */
    mydelay();
    i=lcd_printf(2,0,"请稍候. . . ",1);   /*  wait for send end ! */
    mydelay();
    test_stepmotor();    /*  drive stepmotor run */

    lcd_clr(1);    /*  clear LCD display  */
    mydelay();
    i=lcd_printf(1,0,"正在测试交通灯",1);   /*  wait for send end ! */
    mydelay();
    i=lcd_printf(2,0,"请稍候. . . ",1);   /*  wait for send end ! */
    test_led();          /*  flash the 16s led one by one */
    
    i=lcd_printf(4,2,"测试完毕!",1);   /*  wait for send end ! */

    while(1)
    {
       speak(1000,1);
       for(i=0;i<20;i++)
          mydelay();
    }          
}

⌨️ 快捷键说明

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