📄 x9c503a.c
字号:
#include "f2407regs_c.h"
#include "typedef.h"
void delayX9c503(uchar n);
void setX9c503ToLowest();
void adjustX9c503(uchar dir,uint n);
void judgePower(void);
#define dpm_cs_0 MCRC &= 0xfeff;PFDATDIR |= 0x0100;PFDATDIR &= 0xfffe
#define dpm_cs_1 MCRC &= 0xfeff;PFDATDIR |= 0x0101
#define dpm_ud_0 MCRC &= 0xff7f;PEDATDIR |= 0x8000;PEDATDIR &= 0xff7f
#define dpm_ud_1 MCRC &= 0xff7f;PEDATDIR |= 0x8080
#define dpm_inc_0 MCRC &= 0xfffe;PEDATDIR |= 0x0101;PEDATDIR &= 0xfffe
#define dpm_inc_1 MCRC &= 0xfffe;PEDATDIR |= 0x0101
#define dpm_Vw_0 MCRA &= 0xfff7;PADATDIR |= 0x0800;PADATDIR &= 0xfff7
#define dpm_Vw_1 MCRA &= 0xfff7;PADATDIR |= 0x0808
/*
数字电位器延时
*/
void delayX9c503(uchar n)
{
uint i;
for(i=0;i<n;i++)
{
i=i;
}
}
/*
将电位器调节到最低档
*/
void setX9c503ToLowest()
{
uint i;
uint n = 200;
dpm_cs_0; // cs=0,open x9c503
for(i=0;i<n;i++)
{
dpm_Vw_0;
dpm_inc_1; // inc = 1
dpm_ud_0;
delayX9c503(10);
dpm_inc_0; // inc = 0
delayX9c503(50);
}
dpm_cs_1; //cs=1,close x9c503
}
/*
dir = 1,表示增加
dir = 0,表示减少
n: 表示负脉冲个数
*/
void adjustX9c503(uchar dir,uint n)
{
uint i;
dpm_cs_0;
if(dir)
{
dpm_ud_1; //u/d=0,increase
for(i=0;i<n;i++)
{
dpm_inc_1; // inc = 1
delayX9c503(10);
dpm_inc_0; // inc = 0
delayX9c503(50);
}
}
else
{
dpm_ud_0; //u/d=0,decrease
for(i=0;i<n;i++)
{
dpm_inc_1; // inc = 1
delayX9c503(10);
dpm_inc_0; // inc = 0
delayX9c503(50);
}
}
dpm_cs_1; //cs=1,close x9c503
}
void judgePower()
{
uint i,j,data = 0;
uint flag = 0;
uint result[5];
for(j=0;j<2;j++)
{
ADCCTRL1 = 0x0030;
asm(" nop");
ADCCTRL2 = 0x6000;
CHSELSEQ1 = 0x0C;
MAXCONV = 0x00;
asm(" CLRC SXM");
data = RESULT0;
data = data >> 6;
result[j] = data;
} //清除开机产生的误差数据
for(j=0;j<5;j++)
{
ADCCTRL1 = 0x0030;
asm(" nop");
ADCCTRL2 = 0x6000;
CHSELSEQ1 = 0x04;
MAXCONV = 0x00;
asm(" CLRC SXM");
data = RESULT0;
data = data >> 6;
result[j] = data;
}
data = (result[0]+result[1]+result[2]+result[3]+result[4])/5;
if( (data>=0x2f8) && (data<=0x210) )
{
while(1)
{
feedWatchDog();
Delay_100_Milli_Seconds(); //100ms
if(flag==0){LedOutput2(0);flag=1;}
else{LedOutput2(1);flag=0;} //报警出错闪烁
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -