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

📄 dac811.c

📁 基于dsp的da输出程序
💻 C
📖 第 1 页 / 共 3 页
字号:
		    			    	xishu1[i] = 2048 - da_value;
		    			    }	    			    
					    break;
#endif	
#ifdef DAC7724_1_ENABLE					    
					case 2:				
					    if(i < (timer_sum[2] / 2))
		    			    {
		    			    	xishu2[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu2[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_2_ENABLE						    			    
					case 3:	
					    if(i < (timer_sum[3] / 2))
		    			    {
		    			    	xishu3[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu3[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_3_ENABLE					    
					case 4:					
					    if(i < (timer_sum[4] / 2))
		    			    {
		    			    	xishu4[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu4[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_4_ENABLE					    
					case 5:				
					    if(i < (timer_sum[5] / 2))
		    			    {
		    			    	xishu5[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu5[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_5_ENABLE					   
					case 6:					
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu6[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu6[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_6_ENABLE						    
					case 7:			
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu7[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu7[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_7_ENABLE					    
					case 8:				
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu8[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu8[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_8_ENABLE					    
					case 9:				
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu9[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu9[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif					    
#ifdef DAC7724_9_ENABLE					    
					case 10:						
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu10[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu10[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_10_ENABLE					    
					case 11:					
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu11[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu11[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_11_ENABLE					    
					case 12:	
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu12[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu12[i] = 2048 - da_value;
		    			    }	    			    
					    break;
#endif	
#ifdef DAC7724_12_ENABLE				    
					case 13:
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu13[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu13[i] = 2048 - da_value;
		    			    }	    			    
					    break;
#endif	
#ifdef DAC7724_13_ENABLE					    
					case 14:				
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu14[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu14[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_14_ENABLE					    
					case 15:					
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu15[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu15[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif
#ifdef DAC7724_15_ENABLE					    
					case 16:						
					    if(i < (timer_sum[6] / 2))
		    			    {
		    			    	xishu16[i] = da_value + 2048;
		    			    }
		    			    else
		    			    {
		    			    	xishu16[i] = 2048 - da_value;
		    			    }		    			    
					    break;
#endif					    
					default:
					    break;
				    }
				}
		    		data_time[tongdao] = 0;
		    	}
	    	}
	    	break;
	    	
	    case 2:					/*三角波*/
	    	if((tongdao >= 0) && (tongdao <= 16))
	    	{
		    	if((freq != 0) && (freq <= DA_TIMER_NUM))
		    	{
		    		tongdao_flag[tongdao] = 1;
		    		timer_sum[tongdao] = DA_TIMER_NUM / freq;	/*25us*/
		    		da_value = value;
		    		da_value = da_value / DA_SETVALUE * 2048;
		    		da_value_high[tongdao] = da_value + 2048;
		    		da_value_low[tongdao] = 2048 - da_value;
		    		angle_diff = 4 * da_value /timer_sum[tongdao];
		    		temp = 0;
		    		
		    		for(i = 0; i < timer_sum[tongdao] / 4; i++)
		    		{
		    		    temp = temp + angle_diff;
		    		    switch(tongdao)
		    		    {
#ifdef DAC811_ENABLE
		    			case 0:		    			
					    xishu0[i] = 2048 + 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] = 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] / 4; i < timer_sum[tongdao] / 2; i++)
		    		{
		    		    temp = temp + angle_diff;
		    		    switch(tongdao)
		    		    {
#ifdef DAC811_ENABLE
		    			case 0:		    			
					    xishu0[i] = da_value_high[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_high[tongdao] - temp;					    
					    break;
#endif	
#ifdef DAC7724_1_ENABLE				    
					case 2:				
					    xishu2[i] = da_value_high[tongdao] - temp;					    
					    break;
#endif
#ifdef DAC7724_2_ENABLE					    
					case 3:
					    xishu3[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_3_ENABLE						    
					case 4:
					    xishu4[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_4_ENABLE						    
					case 5:
					    xishu5[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_5_ENABLE			   
					case 6:
					    xishu6[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_6_ENABLE						    
					case 7:
					    xishu7[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_7_ENABLE					    
					case 8:
					    xishu8[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_8_ENABLE					    
					case 9:
					    xishu9[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_9_ENABLE						    
					case 10:
					    xishu10[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_10_ENABLE		    
					case 11:
					    xishu11[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_11_ENABLE	 
					case 12:
					    xishu12[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_12_ENABLE			    
					case 13:
					    xishu13[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_13_ENABLE		    
					case 14:
					    xishu14[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_14_ENABLE	
					case 15:
					    xishu15[i] = da_value_high[tongdao] - temp;
					    break;
#endif
#ifdef DAC7724_15_ENABLE					    
					case 16:
					    xishu16[i] = da_value_high[tongdao] - temp;
					    break;
#endif			    
					default:
					    break;
				    }
		    		}
		    		temp = 0;
			    	for(i = timer_sum[tongdao] / 2; i < timer_sum[tongdao] * 3 / 4; i++)
			    	{
			    	    temp = temp + angle_diff;
			    	    switch(tongdao)
		    		    {
#ifdef DAC811_ENABLE
		    			case 0:
					    xishu0[i] = 2048 - 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;
	    					    }

⌨️ 快捷键说明

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