Accurate Timing System

nobody wrote on Sunday, May 07, 2006:

I currently am doing my final year engineering project. I have been asked to develop a Timing system that involves the following features:

-    Sensor Mat (Switch)
-    LED & Buzzer Feedback
-    Wireless communication (or) RS232 Communication

The company currently has wireless units with photocells. So basically the only change is from a photocell to sensor mat (switch).

The firmware on the current units is difficult to read, difficult to upgrade and debug and very unreliable. I have suggested going to a RTOS (freeRTOS).

I am asking anyone for any suggestion or design considerations that I should look into

I plan to use a 32.468KHz crystal for the timing clock, and use a ATMEGA64 running at 8MHz.

The sensor mat is connected to a interrupt.

A few questions:
-    Am I right that the RTOS sometimes disables all interrupts? This could be a huge problem if the mat stimulated during this time (interrupts work on rising and falling edge)
-    Since I plan to use a separate timer for the timing of the clock I would have the same problem with the interrupts being disabled.

How can I get around this?

I have developed modules for the LED/Buzzer and Communications on previous projects but I have never programmed freeRTOS in a sports timing systems before. If anyone has any suggesting please tell. Or link to other discussion in this forum.



nobody wrote on Sunday, May 07, 2006:

All OS’s will disable interrupts to some degree.  Interrupts should be held pending unti they are reenabled I think.

Is there enough ram on your prcessor.  You might like to try using the co-routine features.

nobody wrote on Sunday, May 07, 2006:

OK, if the interrupts remain pending then all I have to worry about is the maximum time that the interrupts are disabled.

RAM, well from my initial calculations I should have enough. I have 1x Task controlling my LED’s 1x Task for the Buzzer, 1x Task for receiving, 1x transmitting, 1x decoding packets, 1x interrupt control (taking care of switch bounce etc) and 1 x health check. 7 tasks most are minimum stack. If I do run into problems then I will group some function into the co-routine features.