|
1 | | -///* |
2 | | -// * EGG OpenSource EBike firmware |
3 | | -// * |
4 | | -// * Copyright (C) Casainho, 2015, 2106, 2017. |
5 | | -// * |
6 | | -// * Released under the GPL License, Version 3 |
7 | | -// */ |
8 | | -// |
9 | | -//#include <stdint.h> |
10 | | -//#include "stm8s.h" |
11 | | -//#include "gpio.h" |
12 | | -//#include "stm8s_adc1.h" |
13 | | -// |
14 | | -//void adc_init (void) |
15 | | -//{ |
16 | | -// //init GPIO for the used ADC pins |
17 | | -// GPIO_Init(GPIOB, |
18 | | -// (THROTTLE__PIN || CURRENT_PHASE_B__PIN || CURRENT_TOTAL__PIN), |
19 | | -// GPIO_MODE_IN_FL_NO_IT); |
20 | | -// |
21 | | -// //de-Init ADC peripheral |
22 | | -// ADC1_DeInit(); |
23 | | -// |
24 | | -// //init ADC1 peripheral |
25 | | -// ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, |
26 | | -// ADC1_CHANNEL_5, |
27 | | -// ADC1_PRESSEL_FCPU_D2, |
28 | | -// ADC1_EXTTRIG_TIM, |
29 | | -// DISABLE, |
30 | | -// ADC1_ALIGN_LEFT, |
31 | | -// (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
32 | | -// DISABLE); |
33 | | -//} |
34 | | -// |
35 | | -//uint8_t adc_read_throttle (void) |
36 | | -//{ |
37 | | -// uint8_t ui8_temp; |
38 | | -// |
39 | | -// adc_throttle_busy_flag = 1; |
40 | | -// |
41 | | -// ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, |
42 | | -// ADC1_CHANNEL_4, |
43 | | -// ADC1_PRESSEL_FCPU_D2, |
44 | | -// ADC1_EXTTRIG_TIM, |
45 | | -// DISABLE, |
46 | | -// ADC1_ALIGN_LEFT, |
47 | | -// (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
48 | | -// DISABLE); |
49 | | -// |
50 | | -// ADC1->CR1 |= ADC1_CR1_ADON; |
51 | | -// while (!(ADC1->CSR & ADC1_FLAG_EOC)) ; |
52 | | -// ui8_temp = ADC1->DRH; |
53 | | -// |
54 | | -// ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, |
55 | | -// ADC1_CHANNEL_5, |
56 | | -// ADC1_PRESSEL_FCPU_D2, |
57 | | -// ADC1_EXTTRIG_TIM, |
58 | | -// DISABLE, |
59 | | -// ADC1_ALIGN_RIGHT, |
60 | | -// (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
61 | | -// DISABLE); |
62 | | -// |
63 | | -// ADC1->CR1 |= ADC1_CR1_ADON; |
64 | | -// |
65 | | -// adc_throttle_busy_flag = 0; |
66 | | -// |
67 | | -// return ui8_temp; |
68 | | -//} |
| 1 | +/* |
| 2 | + * EGG OpenSource EBike firmware |
| 3 | + * |
| 4 | + * Copyright (C) Casainho, 2015, 2106, 2017. |
| 5 | + * |
| 6 | + * Released under the GPL License, Version 3 |
| 7 | + */ |
| 8 | + |
| 9 | +#include <stdint.h> |
| 10 | +#include "stm8s.h" |
| 11 | +#include "gpio.h" |
| 12 | +#include "stm8s_adc1.h" |
| 13 | + |
| 14 | +uint8_t adc_throttle_busy_flag = 0; |
| 15 | + |
| 16 | +void adc_init (void) |
| 17 | +{ |
| 18 | + //init GPIO for the used ADC pins |
| 19 | + GPIO_Init(GPIOB, |
| 20 | + (THROTTLE__PIN || CURRENT_PHASE_B__PIN || CURRENT_TOTAL__PIN), |
| 21 | + GPIO_MODE_IN_FL_NO_IT); |
| 22 | + |
| 23 | + //de-Init ADC peripheral |
| 24 | + ADC1_DeInit(); |
| 25 | + |
| 26 | + //init ADC1 peripheral |
| 27 | + ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, |
| 28 | + ADC1_CHANNEL_5, |
| 29 | + ADC1_PRESSEL_FCPU_D2, |
| 30 | + ADC1_EXTTRIG_TIM, |
| 31 | + DISABLE, |
| 32 | + ADC1_ALIGN_LEFT, |
| 33 | + (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
| 34 | + DISABLE); |
| 35 | +} |
| 36 | + |
| 37 | +uint8_t adc_read_throttle (void) |
| 38 | +{ |
| 39 | + uint8_t ui8_temp; |
| 40 | + |
| 41 | + adc_throttle_busy_flag = 1; |
| 42 | + |
| 43 | + ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, |
| 44 | + ADC1_CHANNEL_4, |
| 45 | + ADC1_PRESSEL_FCPU_D2, |
| 46 | + ADC1_EXTTRIG_TIM, |
| 47 | + DISABLE, |
| 48 | + ADC1_ALIGN_LEFT, |
| 49 | + (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
| 50 | + DISABLE); |
| 51 | + |
| 52 | + ADC1->CR1 |= ADC1_CR1_ADON; |
| 53 | + while (!(ADC1->CSR & ADC1_FLAG_EOC)) ; |
| 54 | + ui8_temp = ADC1->DRH; |
| 55 | + |
| 56 | + ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, |
| 57 | + ADC1_CHANNEL_5, |
| 58 | + ADC1_PRESSEL_FCPU_D2, |
| 59 | + ADC1_EXTTRIG_TIM, |
| 60 | + DISABLE, |
| 61 | + ADC1_ALIGN_RIGHT, |
| 62 | + (ADC1_SCHMITTTRIG_CHANNEL4 || ADC1_SCHMITTTRIG_CHANNEL5 || ADC1_SCHMITTTRIG_CHANNEL6), |
| 63 | + DISABLE); |
| 64 | + |
| 65 | + ADC1->CR1 |= ADC1_CR1_ADON; |
| 66 | + |
| 67 | + adc_throttle_busy_flag = 0; |
| 68 | + |
| 69 | + return ui8_temp; |
| 70 | +} |
0 commit comments