Thanks Dave,

It was a my fault. I'll change it on the SDK and on the article
as soon as possible.

Sergio


Dave Van den Eynde wrote:
> 
> 
> Hello,
> 
> This week I accomplished something; I managed to hook up a HD47780 style 
> LCD to the Fox Board. I did however notice that the program rssreader 
> was using up all of the CPU because of its brutal 'delay' routines, so I 
> went looking for a fix for this.
> 
> I needed a function that would put the process to sleep for at least a 
> given period of time and give up the CPU to play nice with other 
> processes. I doesn't matter if that time is too long, the whole 
> communication is synchronous anyway. I found some documentation on 
> sleep(), nanosleep() and finally settled on using the select() function 
> as the documentation that I found stated that it was the most portable 
> way of doing it.
> 
> I replaced the functions msDelay() and usDelay() with the following:
> 
> void msDelay(int ms)
> {
>   struct timeval tv;
> 
>   tv.tv_sec = 0;
>   tv.tv_usec = ms * 1000;
> 
>   select(0, NULL, NULL, NULL, &tv);
> }
> 
> void usDelay(int us)
> {
>   struct timeval tv;
> 
>   tv.tv_sec = 0;
>   tv.tv_usec = us;
> 
>   select(0, NULL, NULL, NULL, &tv);
> }
> 
> I compiled and ran it for a while and found out system load dropped from 
>  >1 to 0.03. Perhaps this snippet of code is worthy of inclusion in the 
> next version of the Fox SDK?
> 
> Sincerely,
> 
> Dave Van den Eynde
> 
> 

Reply via email to