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-10-20
- Revision:
- 0:6e0ed5adfe47
- Child:
- 4:6e228f373c6f
File content as of revision 0:6e0ed5adfe47:
//------------------------------------------------------
// Class for ADC using TIM2 trigger
// To get bit definition for register in
// peripheral, see "stm32f401xe.h"
//
// 2014/10/04, 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"
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
}
}