⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dac811.c

📁 基于dsp的da输出程序
💻 C
📖 第 1 页 / 共 3 页
字号:
	    					}
	    					else if(da_rand == 2)		
	    					{
	    					    xishu0[i] = xishu0[i] - DA_NOISE_VALUE;
	    					    if(xishu0[i] < 0)
	    					    {
	    						xishu0[i] = 0;
	    					    }
	    					}
	    				    }
					    break;
#endif
#ifdef DAC7724_0_ENABLE				    
					case 1:
					    xishu1[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_1_ENABLE					    
					case 2:
					    xishu2[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_2_ENABLE				    
					case 3:
					    xishu3[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_3_ENABLE					    
					case 4:
					    xishu4[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_4_ENABLE    
					case 5:
					    xishu5[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_5_ENABLE
					case 6:
					    xishu6[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_6_ENABLE
					case 7:
					    xishu7[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_7_ENABLE
					case 8:
					    xishu8[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_8_ENABLE
					case 9:
					    xishu9[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_9_ENABLE
					case 10:
					    xishu10[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_10_ENABLE
					case 11:
					    xishu11[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_11_ENABLE
					case 12:
					    xishu12[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_12_ENABLE
					case 13:
					    xishu13[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_13_ENABLE
					case 14:
					    xishu14[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_14_ENABLE
					case 15:
					    xishu15[i] = 2048 - temp;
					    break;
#endif
#ifdef DAC7724_15_ENABLE
					case 16:
					    xishu16[i] = 2048 - temp;
					    break;
#endif
					default:
					    break;
				    }
			    	}
			    	temp = 0;
			    	for(i = timer_sum[tongdao] * 3 / 4; i < timer_sum[tongdao] ; i++)
			    	{
			    	    temp = temp + angle_diff;
			    	    switch(tongdao)
		    		    {
#ifdef DAC811_ENABLE
		    			case 0:
					    xishu0[i] = da_value_low[tongdao] + temp;
		    			    if(noise == 1)		
	    				    {
	    					da_rand = rand();
	    					da_rand = da_rand % 3;
	    					if(da_rand == 1)		
	    					{
	    					    xishu0[i] = xishu0[i] + DA_NOISE_VALUE;
	    					    if(xishu0[i] > 4095)
	    					    {
	    						xishu0[i] = 4095;
	    					    }
	    					}
	    					else if(da_rand == 2)		
	    					{
	    					    xishu0[i] = xishu0[i] - DA_NOISE_VALUE;
	    					    if(xishu0[i] < 0)
	    					    {
	    						xishu0[i] = 0;
	    					    }
	    					}
	    				    }	    				    
					    break;
#endif
#ifdef DAC7724_0_ENABLE	    
					case 1:
					    xishu1[i] = da_value_low[tongdao] + temp;
					    break;
#endif
#ifdef DAC7724_1_ENABLE
					case 2:
					    xishu2[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_2_ENABLE		    
					case 3:
					    xishu3[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_3_ENABLE			    
					case 4:
					    xishu4[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_4_ENABLE			    
					case 5:
					    xishu5[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_5_ENABLE			   
					case 6:
					    xishu6[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_6_ENABLE			    
					case 7:
					    xishu7[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_7_ENABLE			    
					case 8:
					    xishu8[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_8_ENABLE			    
					case 9:
					    xishu9[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_9_ENABLE			    
					case 10:
					    xishu10[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_10_ENABLE			    
					case 11:
					    xishu11[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_11_ENABLE			    
					case 12:
					    xishu12[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_12_ENABLE			    
					case 13:
					    xishu13[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_13_ENABLE			    
					case 14:
					    xishu14[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_14_ENABLE			    
					case 15:
					    xishu15[i] = da_value_low[tongdao] + temp;
					    break;
#endif		
#ifdef DAC7724_15_ENABLE			    
					case 16:
					    xishu16[i] = da_value_low[tongdao] + temp;
					    break;
#endif					    
					default:
					    break;
				    }
			    	}
			    	da_kind[tongdao] = kind;
			    	data_time[tongdao] = 0;
			}
		}
	    	break;
	    	
	    case 3:			/*直流*/
	    	tongdao_flag[tongdao] = 1;
	    	timer_sum[tongdao] = 1;
	    	da_value = value;
	    	da_value = da_value / DA_SETVALUE * 2048 + 2048;
	    	da_kind[tongdao] = kind;
	    	da_zhiliu_value[tongdao] = da_value;
	    	switch(tongdao)
		{
		    case 0:
#ifdef DAC811_ENABLE		    
		    	xishu0[0] = da_value;		/*转换数据发送*/	    	
		    	break;
#endif			    	
#ifdef DAC7724_0_ENABLE		    	
		    case 1:
		    	xishu1[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_1_ENABLE			    	
		    case 2:
		    	xishu2[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_2_ENABLE			    	
		    case 3:
		    	xishu3[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_3_ENABLE			    	
		    case 4:
		    	xishu4[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_4_ENABLE		    	
		    case 5:
		    	xishu5[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_5_ENABLE		    	
		    case 6:
		    	xishu6[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_6_ENABLE			    	
		    case 7:
		    	xishu7[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_7_ENABLE		    	
		    case 8:
		    	xishu8[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_8_ENABLE		    	
		    case 9:
		    	xishu9[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_9_ENABLE			    	
		    case 10:
		    	xishu10[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_10_ENABLE		    	
		    case 11:
		    	xishu11[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_11_ENABLE		    	
		    case 12:
		    	xishu12[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_12_ENABLE			    	
		    case 13:
		    	xishu13[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_13_ENABLE		    	
		    case 14:
		    	xishu14[0] = da_value;		/*转换数据发送*/
		    	break;
#endif	
#ifdef DAC7724_14_ENABLE			    	
		    case 15:
		    	xishu15[0] = da_value;		/*转换数据发送*/
		    	break;
#endif		
#ifdef DAC7724_15_ENABLE		    	
		    case 16:
		    	xishu16[0] = da_value;		/*转换数据发送*/
		    	break;
#endif			    		    	
		    default:
		    	break;
		}
		
	    	break;
	    	   
	    default:
	    	break;
	}
}

/****************************************************************************

*	函数:	extern void da_end(int tongdao)
*	目的:	关闭设定的DA通道转换
*	输入:	tondao		通道
*	输出:	无
*	参数:	无


***************************************************************************/

extern void da_end(int tongdao)
{
	tongdao_flag[tongdao] = 0;
#ifdef DAC811_ENABLE	
	if(tongdao == 0)
	{
		da811cs = 2048;
	}
#endif
#ifdef DAC7724_0_ENABLE
	if(tongdao == 1)
	{
		da7724cs0 = 2048;
	}
#endif
#ifdef DAC7724_1_ENABLE
	if(tongdao == 2)
	{
		da7724cs1 = 2048;
	}
#endif
#ifdef DAC7724_2_ENABLE
	if(tongdao == 3)
	{
		da7724cs2 = 2048;
	}
#endif	
#ifdef DAC7724_3_ENABLE
	if(tongdao == 4)
	{
		da7724cs3 = 2048;
	}
#endif
#ifdef DAC7724_4_ENABLE
	if(tongdao == 5)
	{
		da7724cs4 = 2048;
	}
#endif
#ifdef DAC7724_5_ENABLE
	if(tongdao == 6)
	{
		da7724cs5 = 2048;
	}
#endif
#ifdef DAC7724_6_ENABLE
	if(tongdao == 7)
	{
		da7724cs6 = 2048;
	}
#endif
#ifdef DAC7724_7_ENABLE
	if(tongdao == 8)
	{
		da7724cs7 = 2048;
	}
#endif
#ifdef DAC7724_8_ENABLE
	if(tongdao == 9)
	{
		da7724cs8 = 2048;
	}
#endif
#ifdef DAC7724_9_ENABLE
	if(tongdao == 10)
	{
		da7724cs9 = 2048;
	}
#endif
#ifdef DAC7724_10_ENABLE
	if(tongdao == 11)
	{
		da7724cs10 = 2048;
	}
#endif
#ifdef DAC7724_11_ENABLE
	if(tongdao == 12)
	{
		da7724cs11 = 2048;
	}
#endif
#ifdef DAC7724_12_ENABLE
	if(tongdao == 13)
	{
		da7724cs12 = 2048;
	}
#endif
#ifdef DAC7724_13_ENABLE
	if(tongdao == 14)
	{
		da7724cs13 = 2048;
	}
#endif
#ifdef DAC7724_14_ENABLE
	if(tongdao == 15)
	{
		da7724cs14 = 2048;
	}
#endif
#ifdef DAC7724_15_ENABLE
	if(tongdao == 16)
	{
		da7724cs15 = 2048;
	}
#endif
}

/****************************************************************************

*	函数:	extern void da_run(void)
*	目的:	设置DA转换
*	输入:	无
*	输出:	无
*	参数:	无
***************************************************************************/

extern void da_run(void)
{
	ldac = 0;
}

/*********************************************************************************
*										                    *
* 函数定义

⌨️ 快捷键说明

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