📄 da.c
字号:
/*-----------------------------------------------------------------------*
* Copyright (c) 2005,北京四方同创保护与控制设备有限公司稳控事业部
* All rights reserved.
*
* 文件名称:DA.c
* 摘 要:与D/A芯片AD420相关的功能函数
* 采用CSS-200/1规约V1.02版
* 当前版本:2.00
* 作 者:胡炯
* 完成日期:2005.7
*-----------------------------------------------------------------------*/
#include "56807.h"
#include "CSFU107.h"
void ControlDa(void); //控制DA输出
void DaOutput(unsigned int DaOutputValue); //输出DA数据
void Delay(void); //延时功能函数
/*****控制DA输出*****/
void ControlDa(void)
{
if (!DaOutputFlag) //当前未在进行DA输出
{
DaMode = RunStat & 0x0001; //更新装置运行状态设置
if (InitDaFlag) //初始化DA输出8mA
{
InitDaFlag = 0;
OutputDaValue = 16384;
DaOutputFlag = TRUE;
DaOutputStep = 1;
DaOutput(OutputDaValue);
}
else if (DaOutputJudgeFlag)
{
DaOutputJudgeFlag = FALSE;
if (E.ErrFlag || U.ErrFlag)
{
DaValue = 16384;
}
if (OutputDaValue != DaValue)
{
OutputDaValue = DaValue;
DaOutputFlag = TRUE;
DaOutputStep = 1;
DaOutput(OutputDaValue);
}
}
}
else //正在进行DA输出
{
DaOutput(OutputDaValue);
if (DaOutputStep == 0)
{
DaOutputFlag = FALSE;
}
}
}
/*****end of 控制DA输出*****/
/*****输出DA数据*****/
void DaOutput(unsigned int DaOutputValue)
{
switch (DaOutputStep)
{
case 0:
break;
case 1:
SET_CLK_LOW;
SET_LATCH_LOW;
SET_CLEAR_LOW;
Delay();
DaOutputStep ++;
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
if (DaOutputValue & MaskBit[17-DaOutputStep])
{
SET_DATAIN_HIGH;
}
else
{
SET_DATAIN_LOW;
}
Delay();
SET_CLK_HIGH;
Delay();
SET_CLK_LOW;
Delay();
DaOutputStep ++;
break;
case 18:
SET_LATCH_HIGH;
Delay();
SET_LATCH_LOW;
DaOutputStep = 0;
break;
default:
DaOutputStep = 0;
break;
}
}
/*****end of 输出DA数据*****/
/*****延时功能函数*****/
void Delay(void)
{
unsigned int i;
for (i=0; i<750; i++)
{
asm(nop);
}
}
/*****end of 延时功能函数*****/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -