📄 350_adc0.c.bak
字号:
//-----------------------------------------------------------------------------
// 包含文件
//-----------------------------------------------------------------------------
//
#include "C8051F350.H"
#include "c8051f350_command.h"
#include <intrins.h>
//-----------------------------------------------------------------------------
// 外部全局变量声明区
//-----------------------------------------------------------------------------
//
extern unsigned char GCV_received_command_buf;
//-----------------------------------------------------------------------------
// 调用外部函数声明区
//-----------------------------------------------------------------------------
//
void Save_calibrate_parameter(void);
void Load_calibrate_parameter(void);
void _350_ADC0_startup(void)
{
unsigned char TCV_temp_command;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
//满足命令字条件,则执行ADC0启动命令
if( GCV_received_command_buf < 0xa0 )
{
//使ADC0进入空闲状态
COM_ADC0_idle;
TCV_temp_command = GCV_received_command_buf;
//判断进入哪一路校准
TCV_temp_command &= 0x0f;
if ( TCV_temp_command == 0x01 )
{
COM_ADC0_channels_1;
}
else if( TCV_temp_command == 0x02 )
{
COM_ADC0_channels_2;
}
else if( TCV_temp_command == 0x03 )
{
COM_ADC0_channels_3;
}
else if( TCV_temp_command == 0x04 )
{
COM_ADC0_channels_4;
}
TCV_temp_command = GCV_received_command_buf;
TCV_temp_command &= 0xf0;
//判断命令操作
if ( TCV_temp_command == 0x10 )
{
//执行系统自动偏移校正
COM_ADC0_system_offset_calibrate;
}
else if( TCV_temp_command == 0x20 )
{
//执行系统自动增益校正
COM_ADC0_system_gain_calibrate;
}
else if( GCV_received_command_buf == 0x33 )
{
//执行系统偏移手动加
ADC0COM++;
}
else if( GCV_received_command_buf == 0x44 )
{
//执行系统偏移手动减
ADC0COM--;
}
else if( GCV_received_command_buf == 0x55 )
{
//执行系统增益手动加
ADC0CGH++;
}
else if( GCV_received_command_buf == 0x66 )
{
//执行系统增益手动减
ADC0CGH--;
}
else if( GCV_received_command_buf == 0x77 )
{
//执行保存校准参数命令
Save_calibrate_parameter();
}
else if( GCV_received_command_buf == 0x88 ) 令
{
//执行读取校准参数命
Load_calibrate_parameter();
}
else if( GCV_received_command_buf == 0x99 )
{
//执行全内部校准
COM_ADC0_all_inside_calibrate;
}
//禁止AD0中断
EIE1 = 0x00;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
//等待校准完毕
while( AD0CBSY )
{
_nop_();
_nop_();
_nop_();
}
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
//清除中断标志
AD0INT = 0;
//清除校准中断标志
AD0CALC = 0;
//允许AD0中断
EIE1 = 0x08;
//清空命令字
GCV_received_command_buf = 0xff;
//强制进入ADC0中断,再次启动ADC0
AD0INT = 1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -