Hello, the very old timer intel 8253 and 8254 could be used in mode 1 as a hardware triggerable one-shot with programmable pulse length. Now I am using the infineon 80c167 and need a one-shot with programmable pulse length and hardware triggering too. There are a lot of counters T1 to T8 and there is the Capture/Compare unit too, but I found nothing about one-shots in the user's manual. Some timers could be gated with external signals, but only with gate levels and not with gate edges (rising or falling) Any idea how to do this? I need a programmable pulse length of about 10 to 100 microseconds and the delay between hardware trigger and the leading edge of the pulse should be less than about 2 microseconds. Thanks a lot and bye
hardware triggerable one-shot with 80c167
Started by ●March 1, 2004
Reply by ●March 2, 20042004-03-02
Many ways I guess. This is a bit rusty to me now, but if I remember correctly, you might want to consider these ideas : Idea 1 : - Set one of the CAPCOM timers to clock from an external source. - Connect a compare register to this clock, with a compare value of 1 - Set the timer to zero, waiting to count to 1 when the trigger event occurs - The trigger event will immediately increment the count to 1 and set the output - In the ISR triggered by the compare event, set a new compare event to the required time and set the timer to free run. - When the new value is hit, the pulse will ne terminated and the ISR entered again. - In the ISR, reset the registers to be waiting for a new trigger It'd take a bit more thought if you needed the pulse to be re-triggerable. It should be real easy to meet your timings with the above scheme - but be careful about fitting the interrupts into your priority scheme. Idea 2 : Another way would be to set the trigger to compare mode, and PEC a timer run value to a CAPCOM timer control register. You could then set a double compare event to generate your output edges on a pin, use the interrupt on the second compare event to run an ISR that disables and resets the timer. This is maybe a better way. There are certainly better ways to do this. "Uwe Hercksen" <hercksen@mew.uni-erlangen.de> wrote in message news:404339BB.8000602@mew.uni-erlangen.de...> Hello, > > the very old timer intel 8253 and 8254 could be used in mode 1 as a > hardware triggerable one-shot with programmable pulse length. > > Now I am using the infineon 80c167 and need a one-shot with programmable > pulse length and hardware triggering too. > There are a lot of counters T1 to T8 and there is the Capture/Compare > unit too, but I found nothing about one-shots in the user's manual. > Some timers could be gated with external signals, but only with gate > levels and not with gate edges (rising or falling) > > Any idea how to do this? > > I need a programmable pulse length of about 10 to 100 microseconds and > the delay between hardware trigger and the leading edge of the pulse > should be less than about 2 microseconds. > > Thanks a lot and bye >
Reply by ●March 2, 20042004-03-02
Gary Pace schrieb:> Many ways I guess. > > This is a bit rusty to me now, but if I remember correctly, you might want > to consider these ideas : > > Idea 1 : > > - Set one of the CAPCOM timers to clock from an external source. > - Connect a compare register to this clock, with a compare value of 1 > - Set the timer to zero, waiting to count to 1 when the trigger event occurs > - The trigger event will immediately increment the count to 1 and set the > output > - In the ISR triggered by the compare event, set a new compare event to the > required time and set the timer to free run. > - When the new value is hit, the pulse will ne terminated and the ISR > entered again. > - In the ISR, reset the registers to be waiting for a new trigger > > It'd take a bit more thought if you needed the pulse to be re-triggerable. > > It should be real easy to meet your timings with the above scheme - but be > careful about fitting the interrupts into your priority scheme. > > Idea 2 : > Another way would be to set the trigger to compare mode, and PEC a timer > run value to a CAPCOM timer control register. You could then set a double > compare event to generate your output edges on a pin, use the interrupt on > the second compare event to run an ISR that disables and resets the timer. > > This is maybe a better way. > > There are certainly better ways to do this. >Hello, thanks a lot Gary for the ideas. I don't need retriggerable pulses. It was very inspiring to mee. Bye
Reply by ●March 2, 20042004-03-02
I would probably use PWM channel 2 or 3 in single shot mode. You still need to use an interrupt from the trigger pulse to start the PWM, so the worst case delay from the trigger pulse to the output depends on the interrupt priority and any time you have the interrupts globally disabled. Since the interrupt service is very simple - just set the PWM run bit - you can assign it to the highest priority. The PWM:s also have a good resolution. Sauli "Uwe Hercksen" <hercksen@mew.uni-erlangen.de> wrote in message news:404339BB.8000602@mew.uni-erlangen.de...> Hello, > > the very old timer intel 8253 and 8254 could be used in mode 1 as a > hardware triggerable one-shot with programmable pulse length. > > Now I am using the infineon 80c167 and need a one-shot with programmable > pulse length and hardware triggering too. > There are a lot of counters T1 to T8 and there is the Capture/Compare > unit too, but I found nothing about one-shots in the user's manual. > Some timers could be gated with external signals, but only with gate > levels and not with gate edges (rising or falling) > > Any idea how to do this? > > I need a programmable pulse length of about 10 to 100 microseconds and > the delay between hardware trigger and the leading edge of the pulse > should be less than about 2 microseconds. > > Thanks a lot and bye >