標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第509回]
●SLRCONレジスタ?
PIC18F14K50の動作テストをするために、PIC18F14K50のDataSheetを読んでいましたら、見たことのないレジスタについての説明にぶつかりました。
なんじゃこりゃあ?
[出典]MICROCHIP社PIC18F1xK50DataSheet
うむむ。
MICROCHIPさんもよくわからないことをやってくれます。
なんだかいまひとつ理解に苦しむところなのですが、どうやらI/Oポートの出力のスルーレートを加減する、ということのようです。
スルーレート?
はて?
なんでまたそんなことを?
よくはわからないのでありますが。
しかも、デフォルトではスタンダードではない設定になるのだとか。
at 0.1timesとありますから、transition rateつまり立ち上がり立ち下りの速さということでしょうか、それが0.1timesつうのは数値だけを見るとめちゃめちゃ速くなる、ように思ってしまうかもしれませんが…。
それは多分timesをタイムすなわち時間ととらえるとそのように印象してしまいます。
しかしtimeではなくてtimesなのですよねえ。
timesという場合には、確か、○倍という意味だったと記憶しておりますが…。
そうだとすると、0.1timesは0.1倍ということですから、めちゃめちゃ遅くなってしまいます。
まあなにを基準にして、その0.1倍か、というところがよくはわからないのですが。
それにしても、もしも0.1timesがそういう意味だとしたら、なぜわざわざ遅くしなければならないのか。
うむむ。
なぞですねえ。
なにはともあれ、試してみることが一番の近道です。
前回のプログラムにSLRCONのところだけ追加しました。
;;;pic p18f14k50 test program ;f14k50test3 ;10/5/21 ; ; #include<p18f14k50.inc> ;cpuclock=32MHz internal oscillator ; CONFIG FOSC = IRCCLKOUT,WDTEN=OFF,LVP=OFF;not WDT ; org 00 movlw 64;clock=8MHz,select Primary Clock movwf OSCCON movlw 40;PLL on for intosc=8MHz only movwf OSCTUNE clrf ANSEL;PORTA,PORTC are digital clrf ANSELH;PORTB,PORTC are digital clrf SLRCON clrf TRISA;porta=out clrf TRISB;portb=out clrf TRISC;portc=out ; movlw 1 loop xorwf PORTC goto loop ; end
デフォルトではSLRCONのbit0〜bit2は1になるようです。
ということはスタンダードレートではなくて、その0.1timesになっていることになります。
そこでプログラムでSLRCONの全ビットを0にしました。
clrf SLRCONです。
●プログラムTEST3の出力波形です
プログラムを実行中のRC0からの出力波形です。
下側(CH2)がRC0からの出力です。
SLRCON=0にしましたから、スルーレートはスタンダードです。
これを前回のTEST2の出力波形と比べてみましょう。
前回のプログラムTEST2ではSLRCONはさわっていませんから、デフォルトの設定、つまりスタンダードの0.1timesのスルーレートです。
そういえばなんだかこちらのほうが、勾配がゆるやかなような…。
CH2の波形を拡大して比べてみましょう。
まず、こちらは今回のTEST3の波形です。
そしてこちらが前回のTEST2の波形です。
たしかに、こちら(0.1times)のほうがゆるやかなようです。
でも、こんなものがなぜ必要なのでしょうかねえ。
2010.5.26upload
前へ
次へ
ホームページトップへ戻る