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.
Revision 10:65e7ceb96b39, committed 2016-10-24
- Comitter:
- triochi
- Date:
- Mon Oct 24 17:21:58 2016 +0000
- Parent:
- 9:37975a517fb0
- Commit message:
- finally working 4 encoders
Changed in this revision
diff -r 37975a517fb0 -r 65e7ceb96b39 Encoder/EncoderInit.cpp
--- a/Encoder/EncoderInit.cpp	Sun Oct 23 18:44:15 2016 +0000
+++ b/Encoder/EncoderInit.cpp	Mon Oct 24 17:21:58 2016 +0000
@@ -9,6 +9,8 @@
     timer->Init.Prescaler = 0;
     timer->Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
 
+    HAL_TIM_Encoder_DeInit(timer);
+
     encoder->EncoderMode = encmode;
 
     encoder->IC1Filter = 0x0F;
diff -r 37975a517fb0 -r 65e7ceb96b39 Encoder/EncoderMspInitF4.cpp
--- a/Encoder/EncoderMspInitF4.cpp	Sun Oct 23 18:44:15 2016 +0000
+++ b/Encoder/EncoderMspInitF4.cpp	Mon Oct 24 17:21:58 2016 +0000
@@ -72,5 +72,15 @@
         GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
         HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
     }
+    else if (htim->Instance == TIM5) { // PA2 PA3
+       __TIM5_CLK_ENABLE();
+       __GPIOA_CLK_ENABLE();
+       GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3;
+       GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+       GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+       GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
+       GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
+       HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+   }
 }
-#endif
\ No newline at end of file
+#endif
diff -r 37975a517fb0 -r 65e7ceb96b39 main.cpp
--- a/main.cpp	Sun Oct 23 18:44:15 2016 +0000
+++ b/main.cpp	Mon Oct 24 17:21:58 2016 +0000
@@ -31,8 +31,8 @@
 #define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__)            (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
 #endif
 
-TIM_Encoder_InitTypeDef encoder1, encoder2, encoder3, encoder4;
-TIM_HandleTypeDef  timer1,  timer2,  timer3,  timer4;
+TIM_Encoder_InitTypeDef encoder1, encoder2, encoder3, encoder4, encoder5;
+TIM_HandleTypeDef  timer1,  timer2,  timer3,  timer4,  timer5;
 
 
 //DigitalOut red(LED1);
@@ -44,7 +44,9 @@
 
 
 //         VCC,SCE, RST, D/C, MOSI,SCLK,LED
-N5110 lcd(PB_8,PA_4,PB_14,PB_9,PB_15,PB_13,PB_3);  //PA_4 and PA_6 not used
+
+//         N.C.,SCE, RST, D/C, MOSI,SCLK,N.C
+N5110 lcd(PA_4,PA_4,PB_14,PB_9,PB_15,PB_13,PA_4);  //PA_4 and PA_6 not used
 
 int temperature = 50;
 
@@ -78,14 +80,14 @@
     EncoderInit(&encoder4, &timer4, TIM4, 3600, TIM_ENCODERMODE_TI12);
     
     //TIM5 is used by mbed for systick
-    //EncoderInit(encoder2, timer2, TIM5, 0xffffffff, TIM_ENCODERMODE_TI12);
+//    EncoderInit(&encoder5, &timer5, TIM5, 0xffffffff, TIM_ENCODERMODE_TI12);
         
 //    printf("STM HAL encoder demo\n\r");
 
     // these are default settings so not strictly needed
     lcd.normalMode();      // normal colour mode
-    lcd.setBrightness(0.5); // put LED backlight on 50%
-    __HAL_TIM_SET_COUNTER(&timer2,0);
+    lcd.setBrightness(0.7); // put LED backlight on 50%
+   // __HAL_TIM_SET_COUNTER(&timer2,0);
 
     // can directly print strings at specified co-ordinates
 //    lcd.printString("**STM Nucleo**",0,0);