ctr_mcu/snake_trunk/util_funcs.c

66 lines
1.1 KiB
C

/* ========================================================
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_