hi, I'm new to this group and i really need a small help from u guys. I m presently doing a course in embedded system design and we have a project here in our curriculam of 1 month duration. i want to do the project in RTOS(RTLinux specifically) but i m not able to figure out a good idea. If any one has an idea about a good project (RTLinux based) then i request to help me by presenting it to me...even let me know about the various links on the internet about the same.
thanx michael, but can u present me few more detalis. How do i generate the PWM and how do i measure the voltage. I have a fully furnished lab and i m comfortable with AVR atmega16 microcontroller. based on your idea what i figured out is that i can generate a PWM waveform from the timer/counter 0 of the AVR ucontroller and can attain steady voltage with an RC network but i m unable to get how can i program in RTLinux for verifying the steadyness of the voltage.
Linux has nothing to do with verifying the voltage. What he was saying was that the RT routines will guarantee that the PWM widths are consistent and timely within the precision of the system's hardware. It is the consistency of pulse widths and stable frequency that makes for a steady mean average voltage output.
Verfication of the output voltage will need to be done externally, like with an O-scope.
Use a bit I/O (printer port with a standard PC) and toggle one of the bits (cyclically: x µsec low, y µsec high)
using an oscilloscope.
I have a fully furnished lab
I'm not :(.
If you want to test/prove the realtime awareness of the system (including software) in Linux, user land software should be involved in the timing. So you e.g. would do use a fast running continuous timer that blocks some resource. A user land process would wait on the resource and when activated m (for high) or n (for low) times, it would toggle the output bit.
Supposedly designing the software and deciding which kind of resource to use is _your_ homework.
When I did a similar test some years ago (with Kernel 2.4) I found that there were delays up to several 100 msec when using the IDE driver, even though the timing measurement process was given realtime (shed-fifo) priority. 2.6 is supposed to work a lot better and you can activate kernel preemption to improve realtime behavior. But to do decent realtime you will need more appropriate stuff (maybe RTLinux, which I did not test).
The software is just to create the PWM waveform. The result is measured by external hardware (Oscilloscope, DC-voltmeter (is the needle steady), AC-voltmeter (measuring the noise), loudspeaker, ...)