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: v1 v2 v2bis GestionPixy ... more
Revision 1:e82009479b5c, committed 2016-05-26
- Comitter:
- kkoichy
- Date:
- Thu May 26 16:21:43 2016 +0000
- Parent:
- 0:ebd170807e11
- Commit message:
- V1.1 :; - Added one constructor with only one parameter
Changed in this revision
| Nucleo_Encoder_16_bits.cpp | Show annotated file Show diff for this revision Revisions of this file |
| Nucleo_Encoder_16_bits.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Nucleo_Encoder_16_bits.cpp Sun May 22 19:59:18 2016 +0000
+++ b/Nucleo_Encoder_16_bits.cpp Thu May 26 16:21:43 2016 +0000
@@ -54,6 +54,51 @@
namespace mbed
{
+
+ Nucleo_Encoder_16_bits::Nucleo_Encoder_16_bits(TIM_TypeDef * _TIM)
+ {
+ TIM = _TIM;
+ // Initialisation of the TIM module as an encoder counter
+ EncoderInit(&encoder, &timer, _TIM, 0xffff, TIM_ENCODERMODE_TI12);
+
+ // Update (aka over- and underflow) interrupt enabled
+ TIM->DIER |= 0x0001;
+ // The initialisation process generates an update interrupt, so we'll have to clear the update flag before anything else
+ TIM->SR &= 0xfffe;
+
+ // Setting the ISR for the corresponding interrupt vector
+ switch((uint32_t)TIM)
+ {
+ case TIM2_BASE :
+ NVIC_SetVector(TIM2_IRQn, (uint32_t)&Overflow_Routine_TIM2);
+ NVIC_EnableIRQ(TIM2_IRQn);
+ Soft_32_Counter_TIM2 = 0;
+ break;
+
+ case TIM3_BASE :
+ NVIC_SetVector(TIM3_IRQn, (uint32_t)&Overflow_Routine_TIM3);
+ NVIC_EnableIRQ(TIM3_IRQn);
+ Soft_32_Counter_TIM3 = 0;
+ break;
+
+ case TIM4_BASE :
+ NVIC_SetVector(TIM4_IRQn, (uint32_t)&Overflow_Routine_TIM4);
+ NVIC_EnableIRQ(TIM4_IRQn);
+ Soft_32_Counter_TIM4 = 0;
+ break;
+
+ case TIM5_BASE :
+ NVIC_SetVector(TIM5_IRQn, (uint32_t)&Overflow_Routine_TIM5);
+ NVIC_EnableIRQ(TIM5_IRQn);
+ Soft_32_Counter_TIM5 = 0;
+ break;
+
+ default :
+
+ break;
+ }
+
+ }
Nucleo_Encoder_16_bits::Nucleo_Encoder_16_bits(TIM_TypeDef * _TIM, uint32_t _maxcount, uint32_t _encmode)
{
TIM = _TIM;
--- a/Nucleo_Encoder_16_bits.h Sun May 22 19:59:18 2016 +0000
+++ b/Nucleo_Encoder_16_bits.h Thu May 26 16:21:43 2016 +0000
@@ -10,6 +10,7 @@
class Nucleo_Encoder_16_bits {
public :
+ Nucleo_Encoder_16_bits(TIM_TypeDef * _TIM);
Nucleo_Encoder_16_bits(TIM_TypeDef * _TIM, uint32_t _maxcount, uint32_t _encmode);
Nucleo_Encoder_16_bits(TIM_Encoder_InitTypeDef * _encoder, TIM_HandleTypeDef * _timer, TIM_TypeDef * _TIM, uint32_t _maxcount, uint32_t _encmode);
int32_t GetCounter();