Please answers the third Question from the Question sections: This assignment co
ID: 3877670 • Letter: P
Question
Please answers the third Question from the Question sections:
This assignment consists of total of 6 problems (numbers in double brackets indicate points):
1)
Perform audio input and output using the polling method. In polling, the program should
loop continuously and
fetch input data and output data after amplification. Set the sampling frequency to 8 kHz. [[10]]
2)
Perform audio input and output using the interrupt method. Use an interrupt service routine that will
be executed every time an input
is given to the
LCDK
. Set the sampling frequency to 8 kHz. [[10]]
3)
Do problem (2) by setting the sampling frequency to 96 KHz and see the quality improvement on the sound[[5]]
4)Do problem (2) by setting the sampling frequency to 1 kHz and see the effect of aliasing on the sound [[5]]
[Hint: There is no frequency setting for 1 kHz. You can set it to 8 kHz and simply get one sample out of every 8
samples.]
5)Do problem (2) by storing the data in a buffer of length 150. [[5]]
6)Using the buffers of problems (2), generate a false echo by giving the output from the previous buffer into the
input of the current buffer. [[15]]
[Hint: The false echo generator is basically a filter with a
feedback and time delay. Make sure that the filter is stable;
otherwise, the output will quickly become unstable, which means all you will hear at the output is a lot of noise. In
the simplest case the delay will be equal to the buffer length. If you are u
sing integer type variables for
input/output, remember that bit shifting operators can be used to divide]
Required source projects (in order of problems):
polling, intr, intr_96khz, intr_1khz, intr_buff, intr_echo.
Questions (Place these in your report):
1.Comment about the difference between polling and interrupt methods from problems 1 & 2. Is there a noticeable
difference? If so, why? [[10]]
2.What are the input and output frequencies of the audio codec? Why do we choose these values? What is
aliasing?
And What are the results of increasing (96 kHz) or decreasing (1 kHz) it? [[20]]
3.Explain the purpose of the interrupt vector table. [[5]] [Hint: check vectors.asm file]
4.Draw a block diagram of the echo generator you implemented. How do you make
sure that the output in problem 6is stable? [[15]]]
Explanation / Answer
Answer for Ques no 3 from Ques Section :
Explain the purpose of interrupt vector table :
A interrupt vector table i.e. IVT is table of interrupted vectors that are pointers to the routines that handle interrupts.
The IVT consist of 256 4-byte pointers.
Each interrupt number is reserved for a specific purpose. For example, 16 of the vectors are reserved for the 16 IRQ lines i.e. Interrupt request lines
An interrupt vector table is also called a dispatch table.
IVT is associate with a list of interrupt handlers with a list of interrupt requests in a table of interrupt vectors. Each entry of the interrupt vector table, called an interrupt vector i.e. the address of an interrupt handler.
Most processors have an interrupt vector table, including chips from Intel, AMD, Infineon, Microchip Atmel etc.
An interrupt vector table is used in the three most popular methods of finding the starting address of the interrupt service routine:
if there is any query please ask in comments...