/* ======================================================== util_funcs 雑多なユーティリティ関数 $Id$ ======================================================== */ #ifndef _WIN32 #pragma SFR #pragma di #pragma ei #pragma nop #pragma stop #pragma halt #pragma opc #endif #include "incs_loader.h" #include "wdt.h" /********************************************//** 単位は ms NOPを回すだけ、指定時間CPUを *占有します* 。 割り込みとか入るとその分遅れます。 少し誤差あります。 ***********************************************/ void wait_ms( u8 ms ){ u16 fine; WDT_Restart(); while( ms != 0 ){ ms--; fine = 860; while( fine != 0 ){ fine --; } } } extern unsigned char get_ei(); #ifdef _DI_WITH_CHECK_ /********************************************//** すでに 割り込み禁止状態下チェックしてから割り込み禁止にする 評価の結果、現状、#ifdef でチェックせずに DI する ***********************************************/ void DI_wt_chk() { if( !get_ei() ) { dbg_nop(); } DI(); } #endif // _DI_WITH_CHECK_