I am new to HCS08. However, on other micros, I would use a free running timer with an overflow interrupt. I would reset the timer every time I get a character, and if I got on overflow, I know that the next character did not receive on time.
Using the processor expert, I see that there are free-running timers but they don't generate an overflow interrupt.
I can probably do it using a free timer and an event timer but I thought I would ask the experts here about the best way of doing this.
I would appreciate anyone pointing me to the right direction.
Enable that at a reasonable rate (I usually try for something around 1.0 mSec). Inside that irq I use a flag (RIP -- receive-in-progress) and counter. The first serial receive irq sets the flag and initializes the counter; every receive thereafter re-inits the counter. When the final char in the string is received the receive irq clears the RIP flag.
Meanwhile, if the heart-beat irq sees the RIP flag set it decrements the counter. If the counter ever reaches 0 an error routine is launched.
Works for me.
Posted: Fri Dec 02, 2005 5:57 pm
Sorry, I am not familiar with EBS08 and not sure which cookbook you are referring to. Can you please elaborate.
Coming from other microcontrollers, I am baffled that there is not an overflow interrupt on a free-running timer. Not having this, doubles the amout of code you have to write to acheive the same thing.
For instance on AVR you can set the value of the free-running timer to anything between 0 and 254. You always get an interrupt when the value goes to 255. So you don't have to set your own counter, check in code, etc. It is also more efficient because you don't get any interim interrupts.
I have a hard time beleiving that something as simple as that is not available on the HC08.
Posted: Sat Dec 03, 2005 1:22 am
All of the HCS08 variants that have the "real-time" counter also have an associated overflo interrupt feature. You can enable it or disable it. I still don't know which particular one you're using so I can't be more specific.
Posted: Tue Dec 06, 2005 8:55 am
I am trying to use processor expert as I am still new to HCS08. In the Bean selector, I pick the FreeCnt8 and set the resolution. The bean inspector tells me that the name of the interrupt is Vtpm1ovf. However, the bean inspector does not give me an event for this interrupt. If I try to generate a new interrupt vector using the InterruptVector from the Bean Selector and picking the Vtpm1ovf, it gives me an error message indicating that vector is shared.
All I want to go to this interrupt overflow routine and add my code. I don't see this on the code generated by the ProcesorExpert and I dont' know where and how I should add this myself.
I hope you can help.
Posted: Tue Dec 06, 2005 2:58 pm
I must apologize, I cannot help you with "processor expert". I'm philosophically(?) opposed to letting someone I don't know configure my hardware or write snippets of code for me, so I don't use things like that.
Posted: Tue Dec 06, 2005 9:15 pm
Try ProcessorExpert's bean TimerInt. It provides OnInterrupt event called after selected time period.