some success, still errors

Committer:
candre97
Date:
Wed Nov 27 06:49:46 2019 +0000
Revision:
102:780b4ecac614
Parent:
100:ec006d6f3cb6
Child:
108:b8d05666d95f
still getting errors

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 82:abf1b1785bd7 1 /* mbed Microcontroller Library
mbed_official 82:abf1b1785bd7 2 * Copyright (c) 2018 ARM Limited
mbed_official 82:abf1b1785bd7 3 * SPDX-License-Identifier: Apache-2.0
mbed_official 82:abf1b1785bd7 4 */
mbed_official 82:abf1b1785bd7 5
Jonathan Austin 0:2757d7abb7d9 6 #include "mbed.h"
mbed_official 100:ec006d6f3cb6 7 #include "platform/mbed_thread.h"
mbed_official 82:abf1b1785bd7 8 #include "stats_report.h"
candre97 102:780b4ecac614 9 #include <AnalogIn.h>
candre97 102:780b4ecac614 10 #include <AnalogOut.h>
Jonathan Austin 0:2757d7abb7d9 11
candre97 102:780b4ecac614 12 AnalogOut v_src(GPIO0);
candre97 102:780b4ecac614 13 AnalogIn therm(GPIO2);
candre97 102:780b4ecac614 14
candre97 102:780b4ecac614 15 #define SLEEP_TIME 50 // (msec)
candre97 102:780b4ecac614 16 #define PRINT_AFTER_N_LOOPS 20
Jonathan Austin 0:2757d7abb7d9 17
candre97 102:780b4ecac614 18 void ConfigureADC()
candre97 102:780b4ecac614 19 {
candre97 102:780b4ecac614 20 GPIO_InitTypeDef gpioInit;
candre97 102:780b4ecac614 21
candre97 102:780b4ecac614 22 __GPIOC_CLK_ENABLE();
candre97 102:780b4ecac614 23 __ADC1_CLK_ENABLE();
candre97 102:780b4ecac614 24
candre97 102:780b4ecac614 25 gpioInit.Pin = GPIO_PIN_1;
candre97 102:780b4ecac614 26 gpioInit.Mode = GPIO_MODE_ANALOG;
candre97 102:780b4ecac614 27 gpioInit.Pull = GPIO_NOPULL;
candre97 102:780b4ecac614 28 HAL_GPIO_Init(GPIOC, &gpioInit);
candre97 102:780b4ecac614 29
candre97 102:780b4ecac614 30 HAL_NVIC_SetPriority(ADC1_IRQn, 0, 0);
candre97 102:780b4ecac614 31 HAL_NVIC_EnableIRQ(ADC1_IRQn);
candre97 102:780b4ecac614 32
candre97 102:780b4ecac614 33 ADC_ChannelConfTypeDef adcChannel;
candre97 102:780b4ecac614 34
candre97 102:780b4ecac614 35 // error here
candre97 102:780b4ecac614 36 g_AdcHandle.Instance = ADC1;
candre97 102:780b4ecac614 37
candre97 102:780b4ecac614 38 g_AdcHandle.Init.ClockPrescaler = ADC1_CLOCKPRESCALER_PCLK_DIV2;
candre97 102:780b4ecac614 39 g_AdcHandle.Init.Resolution = ADC1_RESOLUTION_12B;
candre97 102:780b4ecac614 40 g_AdcHandle.Init.ScanConvMode = DISABLE;
candre97 102:780b4ecac614 41 g_AdcHandle.Init.ContinuousConvMode = ENABLE;
candre97 102:780b4ecac614 42 g_AdcHandle.Init.DiscontinuousConvMode = DISABLE;
candre97 102:780b4ecac614 43 g_AdcHandle.Init.NbrOfDiscConversion = 0;
candre97 102:780b4ecac614 44 g_AdcHandle.Init.ExternalTrigConvEdge = ADC1_EXTERNALTRIGCONVEDGE_NONE;
candre97 102:780b4ecac614 45 g_AdcHandle.Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
candre97 102:780b4ecac614 46 g_AdcHandle.Init.DataAlign = ADC1_DATAALIGN_RIGHT;
candre97 102:780b4ecac614 47 g_AdcHandle.Init.NbrOfConversion = 1;
candre97 102:780b4ecac614 48 g_AdcHandle.Init.DMAContinuousRequests = ENABLE;
candre97 102:780b4ecac614 49 g_AdcHandle.Init.EOCSelection = DISABLE;
candre97 102:780b4ecac614 50
candre97 102:780b4ecac614 51 HAL_ADC_Init(&g_AdcHandle);
candre97 102:780b4ecac614 52
candre97 102:780b4ecac614 53 adcChannel.Channel = ADC_CHANNEL_11;
candre97 102:780b4ecac614 54 adcChannel.Rank = 1;
candre97 102:780b4ecac614 55 adcChannel.SamplingTime = ADC_SAMPLETIME_480CYCLES;
candre97 102:780b4ecac614 56 adcChannel.Offset = 0;
candre97 102:780b4ecac614 57
candre97 102:780b4ecac614 58 if (HAL_ADC_ConfigChannel(&g_AdcHandle, &adcChannel) != HAL_OK)
candre97 102:780b4ecac614 59 {
candre97 102:780b4ecac614 60 asm("bkpt 255");
candre97 102:780b4ecac614 61 }
candre97 102:780b4ecac614 62 }
mbed_official 88:bea4f2daa48c 63
Jonathan Austin 1:846c97078558 64 // main() runs in its own thread in the OS
mbed_official 82:abf1b1785bd7 65 int main()
mbed_official 82:abf1b1785bd7 66 {
candre97 102:780b4ecac614 67 GPIO_InitTypeDef GPIO_InitStructure; //Variable used to setup the GPIO pins
mbed_official 88:bea4f2daa48c 68 SystemReport sys_state( SLEEP_TIME * PRINT_AFTER_N_LOOPS /* Loop delay time in ms */);
candre97 102:780b4ecac614 69 v_src = 1.0; /* Going to use a digital output as V_src */
candre97 102:780b4ecac614 70 float max = 0;
Jonathan Austin 0:2757d7abb7d9 71 while (true) {
mbed_official 100:ec006d6f3cb6 72 thread_sleep_for(SLEEP_TIME);
candre97 102:780b4ecac614 73 v_src = 1.0;
candre97 102:780b4ecac614 74 float raw_analog_val = 0;
candre97 102:780b4ecac614 75
candre97 102:780b4ecac614 76 for(int i = 0; i < 10; i++) {
candre97 102:780b4ecac614 77 raw_analog_val += therm.read();
mbed_official 88:bea4f2daa48c 78 }
candre97 102:780b4ecac614 79 raw_analog_val /= 10;
candre97 102:780b4ecac614 80 printf("Raw Analog Percentage 10 read AVG %f\n", raw_analog_val);
candre97 102:780b4ecac614 81 if (raw_analog_val > max) {
candre97 102:780b4ecac614 82 max = raw_analog_val;
candre97 102:780b4ecac614 83 printf("NEW MAX: %f\n", max);
candre97 102:780b4ecac614 84 thread_sleep_for(3000);
candre97 102:780b4ecac614 85 }
Jonathan Austin 0:2757d7abb7d9 86 }
Jonathan Austin 0:2757d7abb7d9 87 }