c言語でpicのプログラムを作ろうとしたら、delayに関してなにかエラーを出しているようだった。
いろいろ調べてみると、必要な文が抜けていた。
(ちなみに、HI-TECH C コンパイラ)
使用周波数の定義
#define _XTAL_FREQ 4000000
こうやって、コンパイラに使用周波数を教える必要がある。(この場合は4MHz)
また、_delay,__delay_ms,__delay_usには引数に制限があるみたいで、
電気工作室が参考になりました。
インクルードファイルのソース(pic.h)をみると、このように_XTAL_FREQ を定義しろと言ってますね。
#ifdef __PICCPRO__
/****************************************************************/
/* Built-in delay routine */
/****************************************************************/
#pragma inline(_delay)
extern void _delay(unsigned long);
// NOTE: To use the macros below, YOU must have previously defined _XTAL_FREQ
#define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))
#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))
#endif
PR