📄 main.bak
字号:
#include "def.h"
#include "vkxx.h"
#include <stdio.h>
unsigned int xdata wd _at_ 0xabcd;
//在各种方式中,main.c函数和vkxx.h是通用的def.h在spi和parallel方式是通用的uart
//的多了两个批量读写fifo的函数;底层函数不同
void delay (unsigned int delaydata)
{
unsigned int tempdata=delaydata;
while(tempdata)
{
tempdata=tempdata-1;
}
}
void Init_led(void)
{
unsigned int tempdata=0x0ffff;
CH4_LED = 0;
CH3_LED = 0;
CH2_LED = 0;
CH1_LED = 0;
PAR_LED = 0;
SPI_LED = 0;
UART_LED = 0;
while(tempdata)
{
tempdata=tempdata-1;
}
CH4_LED = 1;
CH3_LED = 1;
CH2_LED = 1;
CH1_LED = 1;
PAR_LED = 1;
SPI_LED = 1;
UART_LED = 1;
tempdata=0x0ffff;
while(tempdata)
{
tempdata=tempdata-1;
}
CH4_LED = 0;
CH3_LED = 0;
CH2_LED = 0;
CH1_LED = 0;
PAR_LED = 0;
SPI_LED = 0;
UART_LED = 0;
tempdata=0x0ffff;
while(tempdata)
{
tempdata=tempdata-1;
}
CH4_LED = 1;
CH3_LED = 1;
CH2_LED = 1;
CH1_LED = 1;
PAR_LED = 1;
SPI_LED = 1;
UART_LED = 1;
tempdata=0x0ffff;
while(tempdata)
{
tempdata=tempdata-1;
}
CH4_LED = 0;
CH3_LED = 0;
CH2_LED = 0;
CH1_LED = 0;
PAR_LED = 0;
SPI_LED = 0;
UART_LED = 0;
tempdata=0x0ffff;
while(tempdata)
{
tempdata=tempdata-1;
}
}
main()
{ static unsigned char dat1,dat2,dat3,dat4,m,n;
unsigned int tmp=0xfff;
unsigned char err_fla=0,err_flb=0,err_flc=0,err_fld=0;
n=0;
m=0;
Init_led();
config();
config_vkxx();
//***********************************************
//主SPI口测试;
CH4_LED = 0;
CH3_LED = 0;
CH2_LED = 0;
CH1_LED = 0;
PAR_LED = 1;
SPI_LED = 0;
UART_LED = 1;
while(1)
{
write_reg(1,SFDR,m);
write_reg(2,SFDR,m);
write_reg(3,SFDR,m);
write_reg(4,SFDR,m);
delay(0x8ff);
delay(0x8ff);
delay(0x8ff);
delay(0x8ff);
//*********************************************
//检测子串口1读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH1_LED
if(read_reg(1,SFSR))
{
CH1_LED =1;
}
//*********************************************
//检测子串口2读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH2_LED
if(read_reg(2,SFSR))
{
CH2_LED =1;
}
//*********************************************
//检测子串口3读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH3_LED
if(read_reg(3,SFSR))
{
CH3_LED =1;
}
//*********************************************
//检测子串口4读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH4_LED
if(read_reg(4,SFSR))
{
CH4_LED =1;
}
/*
*/
dat1=read_reg(1,SFDR);
dat2=read_reg(2,SFDR);
dat3=read_reg(3,SFDR);
dat4=read_reg(4,SFDR);
if(dat1==m)
CH1_LED =0;
else
err_fla =1;
if(dat2==m)
CH2_LED =0;
else
err_flb =1;
if(dat3==m)
CH3_LED =0;
else
err_flc =1;
if(dat4==m)
CH4_LED =0;
else
err_fld =1;
//*********************************************
//如果有一个不等将熄灭灯
if(err_fla==1)
CH1_LED =1;
if(err_flb==1)
CH2_LED =1;
if(err_flc==1)
CH3_LED =1;
if(err_fld==1)
CH4_LED =1;
/*
//*********************************************
//检测子串口1读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH1_LED
if(read_reg(1,SFSR))
{
dat1=read_reg(1,SFDR);
if(dat1==m)
CH1_LED =0;
else
CH1_LED =1;
}
else
CH1_LED =1;
//*********************************************
//检测子串口2读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH2_LED
if(read_reg(2,SFSR))
{
dat2=read_reg(2,SFDR);
if(dat2==m)
CH2_LED =0;
else
CH2_LED =1;
}
else
CH2_LED =2;
//*********************************************
//检测子串口3读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH3_LED
if(read_reg(3,SFSR))
{
dat3=read_reg(3,SFDR);
if(dat3==m)
CH3_LED =0;
else
CH3_LED =1;
}
else
CH3_LED =1;
//*********************************************
//检测子串口4读回的数据个数和所发送数据是否为
//主串口所发送的个数和数据.如有不正确熄灭到子串口CH4_LED
if(read_reg(4,SFSR))
{
dat4=read_reg(4,SFDR);
if(dat4==m)
CH4_LED =0;
else
CH4_LED =1;
}
else
CH4_LED =1;
*/
m=m+1;
if(m==255)
m=0;
}
while(1)
{
do
{
//*****************************************************
write_reg(1,SFDR,m);
write_reg(2,SFDR,m);
write_reg(3,SFDR,m);
write_reg(4,SFDR,m);
//分别通过各路子串口发送数据m
//*****************************************************
while(!(read_reg(1,SFSR)));
while(!(read_reg(2,SFSR)));
while(!(read_reg(3,SFSR)));
while(!(read_reg(4,SFSR)));
dat1=read_reg(1,SFDR);
dat2=read_reg(2,SFDR);
dat3=read_reg(3,SFDR);
dat4=read_reg(4,SFDR);
//先查看接收FIFO中是否有数据,如果接收FIFO中有数据?
//则把各路子串口接收FIFO中的数据读出来
//*****************************************************
if(dat1!=m || dat2!=m || dat3!=m || dat4!=m)
n=n+1;
}
while(m<255);
if(m==255)
m=0;
m=m+1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -