Raspberry Pi のsleep時間測定
RaspberryPiのGPIO出力波形にてsleep処理時間を測定してみました。 ◆sleep() while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); sleep(n); *(gpio_regs + 0x0A) = (0x1 << portnum); sleep(n); } n = 1 1秒から程遠い結果でした。原因は?? ◆usleep() while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); usleep(n); *(gpio_regs + 0x0A) = (0x1 << portnum); usleep(n); } n = 1 n = 10 n = 100 n = 1000 凡そ80μsecのディレイが発生するようです。 ------------------------------------------------------------------ 追加測定 ◆nanosleep() nano.tv_nsec = n; nano.tv_sec = 0; while(1){ *(gpio_regs + 0x7) = (0x1 << portnum); nanosleep(&nano,NULL); *(gpio_regs + 0x0A) = (0x1 << portnum); nanosleep(&nano,NULL); } n=1~1000 n=10000 n=100000 nano.tv_nsec = 0; nano.tv_sec = 1; usleepと同様に約80use...
コメント
コメントを投稿