lpc_adc_interrupt

Overview

The lpc_adc_interrupt example shows how to use interrupt with LPC ADC driver.

In this example, the sensor is used to created the input analog signal. When user type in any key from the keyboard, the software trigger API is called to start the conversion. Then it polls the flag variable which would be asserted when the conversion completed ISR is executed. Then just print the conversion result to terminal.

Project Information

1.what are ADC conversion sequences? A conversion sequence is a single pass through a series of A/D conversions performed on a selected set of A/D channels. Software can set-up two independent conversion sequences, either of which can be triggered by software or by a transition on one of the hardware triggers. Each sequence can be triggered by a different hardware trigger. One of these conversion sequences is referred to as the A sequence and the other as the B sequence. It is not necessary to employ both sequences. An optional single-step mode allows advancing through the channels of a sequence one at a time on each successive occurrence of a trigger. The user can select whether a trigger on the B sequence can interrupt an already-in-progress A sequence. The B sequence, however, can never be interrupted by an A trigger.

  1. How to use software-triggered conversion? There are two ways that software can trigger a conversion sequence:

    1. Start Bit: The first way to software-trigger an sequence is by setting the START bit in the corresponding SEQn_CTRL register. The response to this is identical to occurrence of a hardware trigger on that sequence. Specifically, one cycle of conversions through that conversion sequence will be immediately triggered except as indicated above. (In this example, we use this way.)

    2. Burst Mode: The other way to initiate conversions is to set the BURST bit in the SEQn_CTRL register. As long as this bit is 1 the designated conversion sequence will be continuously and repetitively cycled through. Any new software or hardware trigger on this sequence will be ignored.

  2. What kinds of interrupt do ADC have? There are four interrupts that can be generated by the ADC: • Conversion-Complete or Sequence-Complete interrupts for sequences A and B • Threshold-Compare Out-of-Range Interrupt • Data Overrun Interrupt Any of these interrupt requests may be individually enabled or disabled in the INTEN register.

Program Flow

1.This example demonstrates how to configure the A sequences with interrupt, assigning one channel with software trigger, you can configure channel via “DEMO_ADC_SAMPLE_CHANNEL_NUMBER”.

2.Before configuration of the ADC begins, the ADC is put through a self-calibration cycle.

3.Enable the Conversion-Complete or Sequence-Complete interrupt for sequences A.

4.After ADC channels are assigned to each of the sequences, if the user enters any key via terminal, software trigger will start.

5.When the conversion completes, the interrupt would be triggered. The ISR will print conversion result to terminal.

Supported Boards