Новый main
This commit is contained in:
69
Source/Drivers/Tim.cpp
Normal file
69
Source/Drivers/Tim.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
#include "Tim.h"
|
||||
#include "stm32g4xx.h"
|
||||
|
||||
static ProcTIM TIM6_Proc1 = 0;
|
||||
static ProcTIM TIM6_Proc2 = 0;
|
||||
static ProcTIM TIM7_Proc = 0;
|
||||
|
||||
extern "C" void TIM6_DAC_IRQHandler()
|
||||
{
|
||||
static int proc=0;
|
||||
TIM6->SR = 0;
|
||||
|
||||
|
||||
if(proc>3)
|
||||
{
|
||||
TIM6_Proc2();
|
||||
proc=0;
|
||||
}
|
||||
else proc++;
|
||||
|
||||
TIM6_Proc1();
|
||||
}
|
||||
|
||||
extern "C" void TIM7_IRQHandler()
|
||||
{
|
||||
TIM7->SR = 0;
|
||||
TIM7_Proc();
|
||||
}
|
||||
|
||||
void TIM6_Init(long Priority, unsigned long Freq, const ProcTIM& Proc1, const ProcTIM& Proc2)
|
||||
{
|
||||
RCC->APB1ENR1 |= RCC_APB1ENR1_TIM6EN;
|
||||
|
||||
TIM6->CR1 = 0;
|
||||
TIM6->ARR = 1000 - 1;
|
||||
TIM6->PSC = (SystemCoreClock / 1000 / Freq) - 1;
|
||||
TIM6->DIER = TIM_DIER_UIE;
|
||||
|
||||
TIM6_Proc1 = Proc1;
|
||||
TIM6_Proc2 = Proc2;
|
||||
|
||||
NVIC_SetPriority(TIM6_DAC_IRQn, Priority);
|
||||
NVIC_EnableIRQ(TIM6_DAC_IRQn);
|
||||
}
|
||||
|
||||
void TIM7_Init(long Priority, unsigned long Freq, const ProcTIM& Proc)
|
||||
{
|
||||
RCC->APB1ENR1 |= RCC_APB1ENR1_TIM7EN;
|
||||
|
||||
TIM7->CR1 = 0;
|
||||
TIM7->ARR = 1000 - 1;
|
||||
TIM7->PSC = (SystemCoreClock / 1000 / Freq) - 1;
|
||||
TIM7->DIER = TIM_DIER_UIE;
|
||||
|
||||
TIM7_Proc = Proc;
|
||||
|
||||
NVIC_SetPriority(TIM7_IRQn, Priority);
|
||||
NVIC_EnableIRQ(TIM7_IRQn);
|
||||
}
|
||||
|
||||
void TIM6_Enable()
|
||||
{
|
||||
TIM6->CR1 = TIM_CR1_CEN;
|
||||
}
|
||||
|
||||
void TIM7_Enable()
|
||||
{
|
||||
TIM7->CR1 = TIM_CR1_CEN;
|
||||
}
|
||||
Reference in New Issue
Block a user