ADC Display

Lab 8: Hardware ADC Display

1. ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈ ΰΈ²ΰΈžΰΈ£ΰΈ§ΰΈ‘ΰΈ‚ΰΈ­ΰΈ‡ Lab

Why? - ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΉ€ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈ™ΰΈ΅ΰΉ‰

ADC ΰΉ€ΰΈ›ΰΉ‡ΰΈ™ΰΈžΰΈ·ΰΉ‰ΰΈ™ΰΈΰΈ²ΰΈ™ΰΈͺΰΈ³ΰΈ«ΰΈ£ΰΈ±ΰΈšΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ„ΰΉˆΰΈ² Sensor:

  • Analog Input: ΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΈˆΰΈ²ΰΈ Potentiometer, Sensor

  • Data Visualization: แΰΈͺΰΈ”ΰΈ‡ΰΈ‚ΰΉ‰ΰΈ­ΰΈ‘ΰΈΉΰΈ₯ΰΈšΰΈ™ Slider แΰΈ₯ΰΈ° Bar

  • Dual-Core: ΰΉ€ΰΈ‚ΰΉ‰ΰΈ²ΰΉƒΰΈˆ AAC (Autonomous Analog Controller)

  • Value Conversion: แปΰΈ₯ΰΈ‡ΰΈ„ΰΉˆΰΈ² Raw β†’ Percentage β†’ Voltage

What? - ΰΈˆΰΈ°ΰΉ„ΰΈ”ΰΉ‰ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΈ­ΰΈ°ΰΉ„ΰΈ£

  1. ADC API: aic_adc_read(), aic_adc_read_percent()

  2. Read-only Widgets: Slider/Bar ΰΈ—ΰΈ΅ΰΉˆΰΉΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΉ„ΰΈ‘ΰΉˆΰΉƒΰΈ«ΰΉ‰ user ΰΈ›ΰΈ£ΰΈ±ΰΈš

  3. Real-time Update: Timer-based data refresh

  4. Unit Conversion: Raw (0-4095) β†’ % β†’ Voltage


2. ΰΈ«ΰΈ₯ักการทำงานแΰΈ₯ΰΈ° Flowchart

2.1 Dual-Core ADC Architecture (AAC)

2.2 ADC Value Ranges


3. ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈͺำคัญ

3.1 ADC API (aic-eec/sensors.h)

Function
Returns
Description

aic_sensors_init()

void

Initialize sensor subsystem

aic_adc_read(ch)

uint16_t

Raw ADC value (0-4095)

aic_adc_read_percent(ch)

uint8_t

Percentage (0-100)

aic_adc_read_voltage(ch)

float

Voltage (0.0-3.3V)

3.2 ADC Channels

3.3 Read-only Slider


4. Code Example

4.1 Timer Callback

4.2 Initialization


5. ΰΈ­ΰΈ‡ΰΈ„ΰΉŒΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ£ΰΈΉΰΉ‰ΰΉΰΈ₯ΰΈ°ΰΉ€ΰΈ—ΰΈ„ΰΈ™ΰΈ΄ΰΈ„

5.1 UI Color Coding

5.2 Smoothing ADC Reading


6. ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”

Exercise 1: Threshold Alarm

แΰΈͺΰΈ”ΰΈ‡ΰΉ„ΰΈ­ΰΈ„ΰΈ­ΰΈ™/LED ΰΈͺΰΈ΅ΰΉΰΈ”ΰΈ‡ΰΉ€ΰΈ‘ΰΈ·ΰΉˆΰΈ­ ADC > 80%

Exercise 2: Min/Max Tracker

แΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ² Min แΰΈ₯ΰΈ° Max ΰΈ—ΰΈ΅ΰΉˆΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΉ„ΰΈ”ΰΉ‰ΰΈžΰΈ£ΰΉ‰ΰΈ­ΰΈ‘ΰΈ›ΰΈΈΰΉˆΰΈ‘ Reset


7. References


Previous Lab: Lab 7: HW Button Status Next Lab: Lab 9: HW GPIO Dashboard

Last updated

Was this helpful?