Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UIT2_MovingAverage UIT2_AllpassReverb UIT2_CombReverb UIT2_FIR_LPF_Symmetry ... more
ADC_Base.cpp
- Committer:
- MikamiUitOpen
- Date:
- 2014-11-12
- Revision:
- 9:72fe42a4323c
- Parent:
- 8:f933fcd30408
- Child:
- 13:f2b8af192558
File content as of revision 9:72fe42a4323c:
//------------------------------------------------------ // Class for ADC using TIM2 trigger // To get bit definition for register in // peripheral, see "stm32f401xe.h" // // 2014/11/12, Copyright (c) 2014 MIKAMI, Naoki //------------------------------------------------------ #include "ADC_Base.hpp" namespace Mikami { ADC_Base::ADC_Base(PinName pin1, int frequency, PinName pin2, PinName pin3) : adc_(pin1), PIN1_(pin1), PIN2_(pin2), PIN3_(pin3), myAdc_(ADC1) { myAdc_->CR2 = ADC_EXTERNALTRIGCONVEDGE_RISING // External Trigger on the rising edge | ADC_EXTERNALTRIGCONV_T2_TRGO // Use Timer2 TRGO event | ADC_CR2_ADON; // Enable ADC if (pin2 != NC) adc2_ = new AnalogIn(pin2); if (pin3 != NC) adc3_ = new AnalogIn(pin3); SetTim2(frequency); Select1stChannel(); } void ADC_Base::SetTim2(int frequency) { __TIM2_CLK_ENABLE(); // Supply clock, See "stm32f4xx_hal_rcc.h" SystemCoreClockUpdate(); // Update core clock (for F411RE) // See system_stm32f4xx.h TIM_TypeDef* myTim = TIM2; myTim->CR2 = TIM_CR2_MMS_1; // Update event: as trigger out myTim->ARR = SystemCoreClock/frequency - 1; // Auto-reload myTim->PSC = 0; // Prescaler myTim->CR1 = TIM_CR1_CEN; // Enable TIM2 } }