dac.#2

来自「采用CYGNAL F015单片机」· #2 代码 · 共 40 行

#2
40
字号
//采样值是否已等于或大于门槛值.
//注意是比较绝对值
//假设上位机只传正值,否则也修正.
//是 : return 1; 否 : return 0.
char   HasGreatOrEqual(uchar SampleValue[2], uchar ThresholdValue[2])
{
    char ret=0;
    uint tempValue=0;
    uchar Sample[2];
    Sample[0]=SampleValue[0];
    Sample[1]=SampleValue[1];
    if((Sample[1]&0x80)&&(Sample[1]&0x40)) //Negative value:
    {
		tempValue = Sample[1];
		tempValue = tempValue<<0x08;
        tempValue += Sample[0];
        tempValue=0x10000-tempValue;
        Sample[0]=(uchar)tempValue;  
        Sample[1]=(uchar)(tempValue>>8);
        
    }
    if((Sample[1]>ThresholdValue[1])  //Big or equal.
                   ||((Sample[1]==ThresholdValue[1])
                       &&(Sample[0]>=ThresholdValue[0])) )       
    {
        if((Sample[1]==ThresholdValue[1])//Equal.
                       &&(Sample[0]==ThresholdValue[0]) ) 
            ret=0;
        else
			ret=1;
    }
    else
    {
        ret=-1;
    }
    return ret;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?