/* ADC1.h * Students put your names here * Modified: put the date here * 12-bit ADC input on ADC1 channel 5, PB18 */ /** * @file ADC1.h * @brief 12-bit ADC input * @details 12-bit ADC input on ADC1 channel 5, PB18
* @version ECE319K Spring 2024 * @author Your names go here * @copyright Lab solution, do not post, * @warning AS-IS * @note For more information see http://users.ece.utexas.edu/~valvano/ * @date December 29, 2023
Pins for the 12-bit ADC
Pin GPIOHardware
PB18 inputconnected to slide-pot sensor
******************************************************************************/ #ifndef __ADC1_H__ #define __ADC1_H__ /** * Initialize 12-bit ADC * - PB18 analog input * @param none * @return none * @brief Initialize ADC * @note LaunchPad_Init has been called; this program should not reset Port B */ void ADCinit(void); // write code to initialize ADC1 channel 5, PB18 // Your measurement will be connected to PB18 // 12-bit mode, 0 to 3.3V, right justified // software trigger, no averaging /** * Input from 12-bit ADC * @param none * @return sample 12-bit conversion * @brief Input from PB18 */ uint32_t ADCin(void); // write code to sample ADC1 channel 5, PB18 once // return digital result (0 to 4095) /** * Convert raw 12-bit ADC to fixed point distance * @param input 12-bit ADC raw sample * @return distance as 0.001cm fixed point number * @brief Input from PB18 */ uint32_t Convert(uint32_t input); // determine constants k1 k2 to fit Position=(k1*Data + k2)>>12 /** * Convert raw 12-bit ADC to distance * @param input 12-bit ADC raw sample * @return distance as a floating-point number in cm * @brief Input from PB18 */ float FloatConvert(uint32_t input); // do not use this function // it is added just to show you how SLOW floating point in on a Cortex M0+ #endif // __ADC1_H__