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 + -
显示快捷键?