EFM 32ルーチン——DAC

3300 ワード

ハードウェア:EFM 32 GG 230512ツール:keil 5
DAC実験DAC試験、DAC出力固定電圧値を使用
初期化
/*********************************************Copyright (c)***********************************************
** File name:             	dac.c
** Created by:				Gui              
** Version:               	V1.0.0
** Descriptions:           	
*********************************************************************************************************/
#include "dac.h"

/*********************************************************************************************************
** Function name:      DACInit
** Descriptions:       DAC    
** input parameters:   none
** output parameters:  none
** Returned value:     none
*********************************************************************************************************/
void dac_init(void)
{
    CMU_ClockEnable(cmuClock_DAC0, true);                               /*   DAC                  */
	
    DAC_Init_TypeDef stdacinit = {
        .refresh        = dacRefresh8,                                  /*                         */
        .reference      = dacRef2V5,                                    /*                  		*/
        .outMode        = dacOutputPin,                                 /*   DAC            		 */
        .convMode       = dacConvModeContinuous,                        /*   DAC            		 */
        .prescale       = DAC_PrescaleCalc(1000000, 0),                 /*   DAC            		 */
        .lpEnable       = false,                                        /*               		 */
        .ch0ResetPre    = false,
        .outEnablePRS   = false,
        .sineEnable     = false,                                        /*        	       		*/
        .diff           = false,                                        /*       	       			*/
    };
	/* 
	 *  DAC    
	 */
    DAC_InitChannel_TypeDef stdacinitChannel = {
        .enable         = false,
        .prsEnable      = false,
        .refreshEnable  = false,
        .prsSel         = dacPRSSELCh0,									/* DAC  0       			*/
    };

    DAC_Init(DAC0, &stdacinit);
    DAC_InitChannel(DAC0, &stdacinitChannel, 0);
}

void dac_out(void){
    DAC_Enable(DAC0, 0, true);                                          /*   DAC0  0                */
    DAC0->CH0DATA = (int)((1.3 * 4095) / 2.5);                          /*  PB11             		*/
}



main
/*********************************************Copyright (c)***********************************************
** File name:             	  	main.c
** Created by:					Gui              
** Version:               		V1.0.0        
** Descriptions:            	DAC  ,  DAC       
*********************************************************************************************************/
#include "system.h"
#include "em_device.h"
#include "em_chip.h"
#include "em_cmu.h"
#include "delay.h"
#include "adc.h"
#include "dac.h"
#include "bsp_led.h"

int main()
{
	CMU_ClockEnable(cmuClock_HFPER, true); //      
	CMU_ClockEnable(cmuClock_GPIO, true);
	
	if(SysTick_Config(SystemCoreClockGet()/1000))while(1);//1ms systick  
	led_init();//PD4 PD5
	dac_init();//PB11
	dac_out();//DAC    
	
	while(1){
	}
}