sys_init.i

来自「该模板使用于周立功公司研发的EasyARM2100系列开发板」· I 代码 · 共 633 行

I
633
字号
#line 1 "src\\sys_init.c"









 
#line 1 "src\\system.h"










#line 1 "src\\target.h"





























 










extern void Reset(void);
















 

extern void TargetInit(void);


















 





 



 
#line 12 "src\\system.h"

#line 1 "src\\sys_init.h"





extern 	void	init_sys(void);
extern 	void 	init_io(void);
extern 	void 	init_clock(void);
extern 	void 	init_timer0(void);
extern 	void 	init_timer1(void);
extern 	void 	init_int0(void);
extern 	void 	init_int2(void);

#line 14 "src\\system.h"













 
















 




















#line 12 "src\\sys_init.c"


unsigned char flag1=0,flag2=0;
       uint16 re_crc_value;
extern uint8  course_delay;
extern uint16 show_delay;
extern uint16 XAIOGUANDU,FENCHEN,TOUGUOLI;
extern uint8 rcv_new;
extern uint8 rcv_buf[40];
extern uint8  real_second_value;
 char ds[7][8];
 char st[8][8];
 status_parm        STU[8];
 amp_parm AMP_P[7];





 
void  I2C_Init(void)
{  
   PINSEL0 = (PINSEL0&0xFFFFFF0F) | 0x50;
 
   I2SCLH = I2SCLL = 14;            
   I2CONCLR = 0x2C;
   I2CONSET = 0x40;	
    
   VICIntSelect&=~(1<<9);
   VICVectCntl15 = 0x29;				
   VICVectAddr15 = (int)IRQ_I2C;	    
   VICIntEnable |=0x00000200;
}











 
void init_sys(void)
{uint8 kk;
	init_io();
	I2C_Init();	
	
	UART0_Ini(115200);
	init_timer0();	
	init_timer1();
	UART1_Ini(9600);
	DelayNS(200);
	init_LCD();
	






	IRQEnable();
	for(kk=0;kk<39;kk++)
	   rcv_buf[kk]=0;
     real_second_value=0;
      write_clock(SECOND_ADDRESS,real_second_value);  
	  clr_LCD_screen();
	

}











 
uint32 Time0_cnt;
void __irq IRQ_Timer0 (void)
{  
    uint8 i,j,k;
	T0IR = 0x01;				
	if(show_delay!=0)           {show_delay--;}
   if(course_delay!=0)         course_delay--;
   
   
    
     if(rcv_new==1)             
       {
     
         rcv_new=0;k=0;
         for(i=0;i<7;i++)    
         {
          for(j=0;j<4;j++)
           {
           AMP_P[i].byte[j]=rcv_buf[k+2];  
           k++;
           }
         }
           for(i=0;i<7;i++)
           {
           sprintf(ds[i],"%f",AMP_P[i].fat);  
           }
         }
     else if(rcv_new==2)        
       {
    
         rcv_new=0;k=0;
         STU[0].byte[2]=rcv_buf[2];    
         STU[0].byte[3]=rcv_buf[3];    
         for(i=1;i<8;i++)
           {
            for(j=0;j<4;j++)
              {
               STU[i].byte[j]=rcv_buf[k+4];
               k++;
              }
           }
          
           for(i=0;i<8;i++)
           {
           sprintf(st[i],"%f",STU[i].fat); 
           }
        }
  
   
	if(flag1==0)
	{
		flag1=1;
	}
	else
	{
		flag1=0;
	}
	 if    ( (IO1SET&LED) == 0 ) IO1SET |= LED;
	  else  IO1CLR |= LED;
	  Time0_cnt++;
	  if(Time0_cnt>=3)
	  {
	   Time0_cnt=0;
	   command(0x66);    
      }    
	VICVectAddr = 0x00;			
}















 
uint16 t1_cnt;
void __irq IRQ_Timer1 (void)
{																				
	T1IR = 0x01;				 
	
	 
    
  
     t1_cnt++;
     if(t1_cnt==3)
       {
       t1_cnt=0;
       XAIOGUANDU++;
       FENCHEN++;
       TOUGUOLI++;
      
       if(XAIOGUANDU>900) XAIOGUANDU=125;
       if(FENCHEN>500)   FENCHEN=30;
       if(TOUGUOLI>800)  TOUGUOLI=10;
       }
	if(flag2==0)
	{
		flag2=1;
	}
	else
	{
		flag2=0;
	}
	
	VICVectAddr = 0x00;			 
}















 
void __irq IRQ_Eint0 (void)
{
	while ((EXTINT & 0x01) != 0)
	{
		EXTINT         |= 0x01;													
	}
	VICVectAddr = 0;															
}















 
void __irq IRQ_Eint2 (void)
{
	while ((EXTINT & 0x04) != 0)
	{
		EXTINT         |= 0x04;													
	}
	VICVectAddr = 0;															
}















 
void init_io(void)
{
	
	
	
	
	
    
	PINSEL0 = UART0_EN|I2C_EN|UART1_EN;		
	PINSEL1 = 0;                                       				
	
	IO0DIR 	= LCD_RW|
	          LCD_E|
	          LCD_D0|
	          LCD_D2|
	          LCD_D3|
	          LCD_D5|
	          LCD_D7|
	          LCD_CS2|
	          LCD_CS1|
	          D1302_RST|
	          LCD_POWER|
	          M485_EN|
	          M4821_CS11|
	          M4821_SDI2|
	          M4821_CS12|
	          M4821_SDI1|
	          D1302_CLK;
	          
	IO1DIR 	=
	          D1302_IO|
	          M4821_SCK1|
	          M4821_SCK2|
	          LED|
	          BEEP|
	          LCD_D6|
	          LCD_D4|
	          LCD_D1|
	          LCD_RS|
	          RY4;
	         
	         
	         
             IO1SET |=LED;
	         IO1SET |=BEEP;
			 IO0CLR |=M485_EN;
			 IO0SET |=LCD_POWER;	
			 IO1SET |=BEEP;			
}















 
void init_clock (void)
{

}















 
void init_timer0 (void)
{
	T0TC   = 0;																	
	T0PR   = 0;																	
	
	T0MCR  = 0x03;																
	T0MR0  = Fpclk /4;															
	
	
	T0TCR  = 0x03;																
	T0TCR  = 0x01;																

	VICIntSelect &=~(1<<4);														
	VICVectCntl2  = 0x20 | 4;													
	VICVectAddr2  = (uint32)IRQ_Timer0;											
	VICIntEnable |=(1<<4);														
}















 
void init_timer1 (void)
{
	T1TC   = 0;																	
	T1PR   = 0;																	
	
	T1MCR  = 0x03;																
	T1MR0  = Fpclk /4;															
	
	T1TCR  = 0x03;																
	T1TCR  = 0x01;																

	VICIntSelect &=~(1<<5);														
	VICVectCntl3  =0x20 | 5;													
	VICVectAddr3  =(uint32)IRQ_Timer1;											
	VICIntEnable |=(1<<5);														
}















 
void init_int0 (void)
{
	EXTMODE        |=0x01;														
	EXTPOLAR	   |=0x01;														
	EXTINT         |=0x01;														

	VICIntSelect   &=~(1<<14);													
	VICVectCntl0    =0x20 | 14;													
	VICVectAddr0    =(uint32)IRQ_Eint0;											
	VICIntEnable   |=(1<<14);													
}















 
void init_int2 (void)
{
	EXTMODE        |=0x04;														
	EXTPOLAR	   |=0x04;														
	EXTINT         |=0x04;														

	VICIntSelect   &=~(1<<16);													
	VICVectCntl1    =0x20 | 16;													
	VICVectAddr1    =(uint32)IRQ_Eint2;											
	VICIntEnable   |=(1<<16);													
}

⌨️ 快捷键说明

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