Пример #1
0
void DAC12_SoftwareTriggerLoop(void){
int j = 0 ;

while (1){
       
      DAC_C0_REG(DAC0_BASE_PTR) |= DAC_SW_TRIG_NEXT; //SW trigger to advance to DAC0's next word buffer
      DAC_C0_REG(DAC1_BASE_PTR) |= DAC_SW_TRIG_NEXT; //SW trigger to advance to DAC1's next word buffer
      for (j=0;j<10000;j++){}  // random delay
        
     }


}
Пример #2
0
void DAC12_buffered (DAC_MemMapPtr dacx_base_ptr, byte WatermarkMode, byte BuffMode, byte Vreference, byte TrigMode, byte BuffInitPos,byte BuffUpLimit){

    DAC_C0_REG(dacx_base_ptr) = (
    DAC_BFB_PTR_INT_DISABLE |             
    DAC_BFT_PTR_INT_DISABLE |             
    DAC_BFWM_INT_DISABLE  |             
    DAC_HP_MODE    |             
    DAC_SW_TRIG_STOP |            
    TrigMode |  
    Vreference |     
    DAC_ENABLE    // DAC enalbed
     );  
    
    if ( Vreference == DAC_SEL_VREFO ) {
    VREF_Init();
    }// end of if


    DAC_C1_REG(dacx_base_ptr) = ( 
    DAC_BF_ENABLE  |  //Buffer Enabled            
    WatermarkMode |  // set 1, 2, 3,or 4 word(s) mode           
    BuffMode        // set traversal mode, normal, swing, or onetime   
    ) ;

    DAC_C2_REG(dacx_base_ptr) = BuffInitPos | BuffUpLimit;

}//end of DAC12_buffered 
Пример #3
0
void DAC12_Vin_SWtrig(DAC_MemMapPtr dacx_base_ptr, unsigned char VrefSel)  {

     DAC_C0_REG(dacx_base_ptr)  = (
     DAC_BFB_PTR_INT_DISABLE |  // DACBIE =0 , buffer read pointer  bottom flag interrupt is disabled             
     DAC_BFT_PTR_INT_DISABLE  | // DACTIE = 0 ,buffer read pointer top flag interrupt is disabled            
     DAC_BFWM_INT_DISABLE |     // DACWIE = 0, buffer water mark interrupt disabled            
     DAC_HP_MODE    |           // LPEN = 0, low power mode            
     DAC_SW_TRIG_STOP |         // NO Software trigger yet            
     DAC_SEL_SW_TRIG |          // DACTSEL =1, Databuffer outputs to DACO pin whenever a write to DACDAT0     
     VrefSel |          
     DAC_ENABLE                 //DAC enalbed
     );  

    if ( VrefSel == DAC_SEL_VREFO ) {
    VREF_Init();
    }// end of if

     DAC_C1_REG(dacx_base_ptr)= ( 
     DAC_BF_DISABLE  |  // Buffer read pointer is disabled, converted data is always the first word of buffer = DACCCDAT0            
     DAC_BF_NORMAL_MODE |          
     DAC_BFWM_1WORD |
     DAC_DMA_DISABLE  
     ) ;

DAC_C2_REG(dacx_base_ptr) = DAC_SET_PTR_AT_BF(0)| DAC_SET_PTR_UP_LIMIT(0x0f);
}// end of DAC12_Vin_SWtrig
Пример #4
0
void DACx_register_reset_por_values (DAC_MemMapPtr dacx_base_ptr){
  unsigned char dacbuff_index = 0 ;   

for (dacbuff_index=0; dacbuff_index<16;dacbuff_index++){
    SET_DACx_BUFFER( dacx_base_ptr, dacbuff_index, DACx_DAT_RESET); 
  }
   
     DAC_SR_REG(dacx_base_ptr) = DACx_SR_RESET ;
     DAC_C0_REG(dacx_base_ptr) = DACx_C0_RESET ;
     DAC_C1_REG(dacx_base_ptr) = DACx_C1_RESET;
     DAC_C2_REG(dacx_base_ptr) = DACx_C2_RESET;
} //end of DACx_register_reset_por_values
Пример #5
0
void DAC12_Interrupt_Init(DAC_MemMapPtr dacx_base_ptr,byte watermark, byte zerobuffer, byte uplimitbuffer ){

  
  if (dacx_base_ptr == DAC0_BASE_PTR ) {
     NVICICPR2 |= (1<<17);
     NVICISER2 |= (1<<17);
  }else {
     NVICICPR2 |= (1<<18);
     NVICISER2 |= (1<<18);
  }
 
  DAC_C0_REG(dacx_base_ptr) |= watermark |zerobuffer | uplimitbuffer ; 
}
Пример #6
0
//============================================================================
//函数名称:dac_set
//函数返回:无
//参数说明:dacx_base_ptr:DACx基指针
//                VrefSel:      参考电压
//功能概要:配置DAC模块   
//============================================================================  
void dac_set(DAC_MemMapPtr dacx_base_ptr, uint8_t VrefSel)
{
	 //配置DAC_C0寄存器
     DAC_C0_REG(dacx_base_ptr)  = (
                                   DAC_BFB_PTR_INT_DISABLE|//缓冲区置底中断禁止            
                                   DAC_BFT_PTR_INT_DISABLE|//缓冲区置顶中断禁止              
                                   //DAC_BFWM_INT_DISABLE   |//水印中断禁止           
                                   DAC_HP_MODE            |//高功耗模式          
                                   DAC_SW_TRIG_STOP       |//软触发无效          
                                   DAC_SEL_SW_TRIG        |//选择软件触发      
                                   VrefSel                |//选择参考电压         
                                   DAC_ENABLE              //使能DAC0模块 
                                   );  
  
	 //配置DAC_C1寄存器
     DAC_C1_REG(dacx_base_ptr)= ( 
                                 DAC_BF_DISABLE           |//DAC缓冲区禁止              
                                 DAC_BF_NORMAL_MODE       |//DAC选择区选择正常工作模式         
                                 DAC_DMA_DISABLE           //DMA禁止
                                 ) ;
}