📄 main.c
字号:
//***************************************//
// 项目: TRB 测试板
// CPU : ATmega16L
// 编译器:IAR
//***************************************//
#include "iom16.h"
#include "ioavr.h"
#include "inavr.h"
#include "avr_macros.h"
#include "userdef.h"
#include "userfun.h"
#include "userram.h"
#include "usertype.h"
#include "disdata.h"
void main(void)
{
__disable_interrupt();
system_init();
user_init();
__enable_interrupt();
while(1)
{
clr_key_press; // beginning of judge key
while(!key_press)
{
total_press_key=0; // first scan for key press
while(total_press_key!=1)
{
total_press_key=0;
temp_key_value=0;
key_scan();
pre_key_value=temp_key_value;
}
delay(TIME_20MS); // delay 20ms
total_press_key=0; // second scan for key press
temp_key_value=0;
key_scan();
key_value=temp_key_value;
if(key_value=pre_key_value) // judge if two scans is same
{
if(total_press_key==1)
set_key_press;
}
}
CLR_OUTKEY1; // wait for key pop
CLR_OUTKEY2;
CLR_OUTKEY3;
CLR_OUTKEY4;
while((PIND&0X70)!=0x70)
{
}
SET_OUTKEY1;
SET_OUTKEY2;
SET_OUTKEY3;
SET_OUTKEY4; // end of judge key
switch(key_value) // deal with all keys
{
case 1:
{
while(TCNT1H>=16);
CheckWendu(); // 检测温度
break;
}
case 2:
{
GainChannel(); // 选择通道增益
break;
}
case 3:
{
while(TCNT1H>=16);
AddGain(); // 通道增益加1
break;
}
case 4:
{
while(TCNT1H>=16);
DecGain(); // 通道增益减1
break;
}
case 5:
{
ChannelCheck(); // 屏蔽检测
break;
}
case 6:
{
ShouFa(); // 收发
break;
}
case 7:
{
Shou(); // 只收
break;
}
case 8:
{
Fa(); // 只发
break;
}
case 9:
{
CheckOPD(); // 检测输出功率
break;
}
case 10:
{
CheckVSWR(); // 检测驻波比
break;
}
case 11:
{
DeviceCode_EEP=0xAC;
read_error=0;
write_error=0;
clr_ram();
check_ram();
if((read_error!=0)||(write_error!=0))
{
disbuf[0]=BCDSEG_TAB[14]; //e
disbuf[1]=BCDSEG_TAB[27]; //r
disbuf[2]=BCDSEG_TAB[27]; //r
disbuf[3]=BCDSEG_TAB[0]; //o
disbuf[4]=BCDSEG_TAB[27]; //r
disbuf[5]=0xff;
}
else
{
disbuf[0]=0xff; // /
disbuf[1]=BCDSEG_TAB[9]; // g
disbuf[2]=BCDSEG_TAB[0]; // O
disbuf[3]=BCDSEG_TAB[0]; // O
disbuf[4]=BCDSEG_TAB[13]; // d
disbuf[5]=0xff;
}
disbcd(disbuf);
break;
}
case 12:
{
DeviceCode_EEP=0xA4;
read_error=0;
write_error=0;
clr_ram();
check_ram();
if((read_error!=0)||(write_error!=0))
{
disbuf[0]=BCDSEG_TAB[14]; //e
disbuf[1]=BCDSEG_TAB[27]; //r
disbuf[2]=BCDSEG_TAB[27]; //r
disbuf[3]=BCDSEG_TAB[0]; //o
disbuf[4]=BCDSEG_TAB[27]; //r
disbuf[5]=0xff;
}
else
{
disbuf[0]=0xff; // /
disbuf[1]=BCDSEG_TAB[9]; // g
disbuf[2]=BCDSEG_TAB[0]; // O
disbuf[3]=BCDSEG_TAB[0]; // O
disbuf[4]=BCDSEG_TAB[13]; // d
disbuf[5]=0xff;
}
disbcd(disbuf);
break;
}
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -