作るって言っても人様のコードをもらって来ただけだ。
1 2 3 4 5 6 7 8 9 |
#define SYS_CLK_FREQ 8000000 void delay_m(unsigned int msec){ //volatile unsigned int start = _CP0_GET_COUNT(); unsigned int start = _CP0_GET_COUNT(); while( _CP0_GET_COUNT() - start < ( msec * SYS_CLK_FREQ / 2 / 1000 ) ) Nop(); return; } |
_CP0_GET_COUNT() はコア・タイマーの値を返すらしい。 差を調べてある値になるまで待つと