|
|
View previous topic :: View next topic |
Author |
Message |
longmenok
Joined: 23 Oct 2006 Posts: 12
|
How to set the pulse width of less than 500us of the 12f617 |
Posted: Mon Jan 22, 2018 6:32 am |
|
|
There is a problem in my program.
If external oscillator 32768 is used, I can't get a pulse less than 500us.
I set pulse width to be 250us, but the output pulse width is 500us. No matter how I modify the pulse width which is less than 500us,output is always 500us.
If the internal 4M crystal oscillator is used, the output pulse is normal. That is to say, the set is 250us then the output is also 250us.
Why is this? I need a 250us pulse, but I can't know how to setup this code. How to solve this problem, I want to output a 250us pulse.
Thank you!
The version is 5.015
Code: |
#include <12F617.H>
#fuses LP, NOWDT,NOPROTECT,BROWNOUT, NOPUT,NOMCLR// INTRC_IO
#use delay(clock = 32768, xtal) //minum delay 500us
//#fuses INTRC_IO, NOWDT?NOMCLR, NOPUT, NOPROTECT
//#use delay(internal=4000000)
while(TRUE)
{
output_high(PIN_A1);
delay_us(250); //pulse width =250us
output_low(PIN_A1); //600ppm delay=100ms, 400ppm delay=150ms
// 240ppm
delay_ms(250); //240ppm delay=250ms
} |
|
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19510
|
|
Posted: Mon Jan 22, 2018 7:00 am |
|
|
The fastest you can get 244uSec, by selecting fast_io, and no delay.
At 32768Hz, each instruction of the chip itself takes 122uSec.
A pulse implies turning on, then off, so two instructions. 244uSec.
You were seeing 4 instructions, since using standard_io (the default), has the processor controlling the TRIS for every I/O operation. So 488uSec minimum.
Code: |
#include <12F617.H>
#fuses LP, NOWDT,NOPROTECT,BROWNOUT, NOPUT,NOMCLR// INTRC_IO
#use delay(clock = 32768, xtal) //minum delay 500us
#use fast_io(a)
//Now inside the main, _you_ will need to control the TRIS
output_drive(PIN_A1); //set A1 as an output
while(TRUE)
{
output_low(PIN_A1);
output_high(PIN_A1);
}
|
|
|
|
longmenok
Joined: 23 Oct 2006 Posts: 12
|
|
Posted: Tue Jan 23, 2018 11:45 pm |
|
|
Thank you very much! Ttelmah.
It can work normally. |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|