AVR H8 etc. マイコン総合スレ Part3

このエントリーをはてなブックマークに追加
41774ワット発電中さん
>>34
TCCR1B=0x01;
を、WINAVRでコンパイルしてみました。
MCU = atmega8 の時
5:test.c **** TCCR1B=0x01;
65 .LM2:
66 0008 81E0 ldi r24,lo8(1)
67 000a 8EBD out 78-0x20,r24

MCU = atmega48 の時
5:test.c **** TCCR1B=0x01;
65 .LM2:
66 0008 81E0 ldi r24,lo8(1)
67 000a 8093 8100 sts 129,r24

なるほど。Mega48の時は、OUTを使わずにSTSを使っています。
C:\WinAVR\doc\avr-libc\avr-libc-user-manual\group__avr__sfr.html
あたりに、その辺の事情が書いてありますね。

そういえば
outb()に関して
#define outb ( sfr, val ) (_SFR_BYTE(sfr) = (val))
Deprecated:
For backwards compatibility only. This macro will eventually be removed.
Use direct access in new programs.

とあって、outb(PORTA,0xff) じゃなくて、PORTA=0xffと書け っていうのはそういう事情なのか。今やっとわかった。さんきゅ(w