EFM 32ルーチン——DAC
3300 ワード
ハードウェア:EFM 32 GG 230512ツール:keil 5
DAC実験DAC試験、DAC出力固定電圧値を使用
初期化
main
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){
}
}