The IVT stores addresses of interrupt service routines ISRs
Solution
1a)
Interrupt:
Sometimes things will happen in a system when the processor is simply not ready. In fact, sometimes things change that immediate attention. Can you imagine, sitting at your pc, that you were to hit buttons on the keyboard and nothing happens on your compter
Maybe the processor was busy, and it just didn’t check to see if you were hitting any buttons at that time. The solution to this problem is something called an “Interrupt” Interruputs are event that cause the microprocessor to stop what it is doing, and handle a high-priority task first. After the interrupt is handled, the microprocessor goes back to whatever it was doing before. In this way, we can be assured that high-priority inputs are never ignored.
Interrupt are two types
1.software interrupt
2.hardware interrupt
Interrupt vector table(IVT):
IVT is a data structure that associates a list of interrupt handlers with a list of interrupt requests In a table of interrupt vector. An entry in the interrupt vector is the address of the interrupt handler. While the concept is common across processor architectures each IVT may be implemented in an architecture-specific fashion.
Example: dispatch table is on method of implementing an interrupt vector tabe
2a)
A typical timer will consist of a prescaler an N-bit timer/counter register (typically N is 8, 16 or 32 bits), one or more N-bit capture registers, and one or more N-bit compare registers. There will also be control and status registers to configure and monitor the timer.
Note that this section is called Timers/Counters. The fundamental hardware involved is an up-counter, which counts incoming pulses. A counter, any counter, becomes a timer when the incoming pulses are at a fixed, known frequency. I will often use the terms “counter” and “timer” interchangeably, but just keep in mind that the hardware is always a counter, and that the counter becomes a timer if we are feeding it a fixed, known frequency to count.
It is also worth noting that the size in bits of a timer is not directly related to the size in bits of the CPU architecture. Nothing prevents an 8-bit microcontroller from having 16-bit timers (most do, in fact), nor does anything prevent a 32-bit uC from having 16-bit timers (and some do).
Something else that you may see are uCs that have multiple timers of different size. For example, most AVRs have both 8-bit and 16-bit timers, and some LPC2xxx devices have both 32-bit and 16-bit time.
3a)
An integrating ADC is a type of analog-to-digital converter that converts an unknown input voltage into a digital representation through the use of an integrator. In its basic implementation, the dual-slope converter, the unknown input voltage is applied to the input of the integrator and allowed to ramp for a fixed time period (the run-up period). Then a known reference voltage of opposite polarity is applied to the integrator and is allowed to ramp until the integrator output returns to zero (the run-down period). The input voltage is computed as a function of the reference voltage, the constant run-up time period, and the measured run-down time period. The run-down time measurement is usually made in units of the converter\'s clock, so longer integration times allow for higher resolutions. Likewise, the speed of the converter can be improved by sacrificing resolution.
Converters of this type can achieve high resolution, but often do so at the expense of speed. For this reason, these converters are not found in audio or signal processing applications. Their use is typically limited to digital voltmeters and other instruments requiring highly accurate measurements.
In most cases, for positive input voltages, this means that the reference voltage will be negative. To handle both positive and negative input voltages, a positive and negative reference voltage is required. The selection of which reference to use during the run-down phase would be based on the polarity of the integrator output at the end of the run-up phase.

