|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Vladimir Birjukov 2:51/5 24 Oct 2001 21:36:13 To : All Subject : nanosleep --------------------------------------------------------------------------------
Я тут все еще страдаю с picprog... кто знающий скажите, сколько времени должна
выполняться функция delay_100 ? Hу и соответственно, длительность импульса на
RTS в функциях p_in, p_out? осциллографом получается 10 миллисекунд.
===== Start cut =====
#define NANOSLEEP_WORKS 1
static void delay_100 ()
{
#ifdef NANOSLEEP_WORKS
static const struct timespec ns100 = { 0, 100 };
nanosleep (&ns100, 0);
#else
#ifdef USLEEP_WORKS
usleep (1);
#else
volatile int i;
for (i = 0; i < 10; i++)
;
#endif
#endif
}
void picport::p_out (int b)
{
ioctl (fd, b ? TIOCMBIS : TIOCMBIC, &picport::dtr_bit); // set data
ioctl (fd, TIOCMBIS, &picport::rts_bit); // clock up
delay_100 ();
ioctl (fd, TIOCMBIC, &picport::rts_bit); // clock down
delay_100 ();
}
int picport::p_in ()
{
ioctl (fd, TIOCMBIS, &picport::dtr_bit); // set data up
ioctl (fd, TIOCMBIS, &picport::rts_bit); // clock up
delay_100 ();
ioctl (fd, TIOCMBIC, &picport::rts_bit); // clock down
delay_100 ();
int i;
ioctl (fd, TIOCMGET, &i);
return 0 != (i & TIOCM_CTS);
}
===== End cut =====
WL
--- QDed beta v1.3/FreeBSD
* Origin: HaOS Station (2:51/5)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7643bd70ea7.html, оценка из 5, голосов 10
|