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

📄 mc_stm8s_dac.c

📁 STM8S105 BLDC源代码
💻 C
字号:
#include "MC_dev_DAC.h"
#include "stm8s_lib.h"

#include "MC_ControlStage_param.h"

#ifdef DAC_FUNCTIONALITY

	u8 hMeasurementArray[2];

	void dev_DACInit(void)
	{
		//counter disabled, disable ARR preload register 
		TIM3->CR1 = 0;

		//prescaler 
		TIM3->PSCR = 0;

		//make sure channels are disabled
		TIM3->CCER1 = 0;

		//select PWM1 mode, enable preload for channel OC1, OC2
		TIM3->CCMR1 = 0x68;
		TIM3->CCMR2 = 0x68;

		//set auto reload value at Max
		TIM3->ARRH = 0x00;
		TIM3->ARRL = 0xFF;

		//counter enabled
		TIM3->CR1 |= 0x01;

		//force update
		TIM3->EGR |= 0x01;

		//enable interrupts
		TIM3->IER |= 0x01;

		// 
		TIM3->CCR1H = 0;
		TIM3->CCR1L = 0;
		TIM3->CCR2H = 0;
		TIM3->CCR2L = 0;

		// Output enable
		TIM3->CCER1 = 0x11;
		
		//ITC_SetSoftwarePriority(ITC_IRQ_TIM3_CAPCOM, ITC_PRIORITYLEVEL_2);
	}

	@near @interrupt void TIM3_UPD_OVF_BRK_IRQHandler (void)
	{
		TIM3->SR1 &= (u8)(~0x01);
		TIM3->CCR1L = hMeasurementArray[DAC_CH_1];
		TIM3->CCR2L = hMeasurementArray[DAC_CH_2];
	}

	void dev_DACUpdateValues(u8 bVariable, u8 hValue)
	{
	  hMeasurementArray[bVariable] = hValue;
	}

#endif

⌨️ 快捷键说明

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