teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:73/789 記事一覧表示 | 《前のページ | 次のページ》

Re: キャプチャの値が6%ほどずれる件

 投稿者:matsu  投稿日:2015年 1月23日(金)20時37分24秒
  通報 返信・引用
  > No.724[元記事へ]

nekosanさんへのお返事です。

> 解決できたんですね。よかったです。

先陣の皆様の教えはとても助かります。
突破口を作っていただいてありがとうございました。

> FCYっていうタグは、プログラム内だけでなく、
> ライブラリでも参照されている定数なんで
> しょうかね?(delay系関数とか?)

関数を呼ぶマクロでした。ヘッダファイルで検索してみました。

/*
* __delay32() provides a 32-bit delay routine which will delay for the number
* of cycles denoted by its argument.  The minimum delay is 12 cycles
* including call and return statements.  With this function only the time
* required for argument transmission is not accounted for.  Requests for
* less than 12 cycles of delay will cause an 12 cycle delay.
*/

extern void __delay32(unsigned long cycles);

/*
* __delay_ms() and __delay_us() are defined as macros. They depend
* on a user-supplied definition of FCY. If FCY is defined, the argument
* is converted and passed to __delay32(). Otherwise, the functions
* are declared external.
*
* For example, to declare FCY for a 10 MHz instruction rate:
*
* #define FCY 10000000UL
*/

#if !defined(FCY)
extern void __delay_ms(unsigned long);
extern void __delay_us(unsigned long);
#else
#define __delay_ms(d) \
  { __delay32( (unsigned long) (((unsigned long long) d)*(FCY)/1000ULL)); }
#define __delay_us(d) \
  { __delay32( (unsigned long) (((unsigned long long) d)*(FCY)/1000000ULL)); }
#endif



unsigned long longなんて知らなかった・・・。


> あまりお役に立ててないと思いますが、なんにしても、
> 原因まですっきりでなによりでした。

いえいえ,めちゃくちゃ助かりました。
ありがとうございました。
 
 
》記事一覧表示

新着順:73/789 《前のページ | 次のページ》
/789