> Hi all,
>
> I have a 7250 board and am looking to generate a 25Khz square wave on
> a DIO pin.
>
> I am also running debian linux from a USB flash drive.
>
> I am able to generate a waveform (as seen on an oscilloscope) but
> only at a maximum of 25Hz. I can not achieve a higher frequency. Here
> is a snippit of my C code:
>
> while (1){
>
> *PBDR = 0x01;
> usleep(20);
> *PBDR = 0x00;
> usleep(20);
> }
>
> The usleep() function SHOULD sleep for 20us. However, I can only read
> a 25Hz wave on the oscilloscope meaning that each pulse length is
> 20ms.
usleep(20) will sleep a <i>minimum</i> of 20us. What in fact is happening
is that your process is being rescheduled for the next clock tick, which
happens at 100Hz (10ms), times two is the 20ms period you are seeing.
Regards,
Michael
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|