標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第490回]
●簡単なPIC18F2550テストプログラムです
[第486回]で、「もっとも簡単なPIC18F2550テストプログラムです」というタイトルで説明をいたしました。
でも、ウソでした。
やっぱり、「もっとも」とか「最高の」とか、とにかく most とか only one を意味する形容詞は余程注意して用いないと、うそを書いてしまうことになります。
もっと簡単になるじゃないの、ということに気が付きました。
でも、今回は注意深く、「もっとも簡単」とは書かないことにいたしました。
;;;pic p18f2550 test program ;f2550test1 ;4/25 4/28 ; #include<p18f2550.inc> ; ;cpuclock=8MHz internal oscillator ; CONFIG FOSC=INTOSC_EC,WDT=OFF,LVP=OFF,MCLRE=OFF ; org 00 start movlw 7f;clock=8MHz movwf OSCCON movlw 0f movwf ADCON1;porta,b are digital movlw 0;porta-c are output movwf TRISA movwf TRISB movwf TRISC ; movlw 1 loop xorwf PORTA goto loop ; end
どこが、さらに簡単になったのか、と言いますと、[第486回]でのリストでは、start のところが、
org 00 st0 goto start ; org 1a start movlw 7f;clock=8MHz
となっていました。
今回のプログラムでは、
st0からorg 1aまでが無くなっています。
●interrupt vector
じつはこの部分、アドレス1aよりも前の部分は割込みのときのエントリアドレスとしてリザーブされているのです。
PIC16Fでは、アドレス04が割込みのエントリポイントでした。
PIC18F2550では、下図のようになっています。
[出典]PIC18F2455/2550/4455/4550DataSheet
アドレス0008がHigh−Priority Interrupt Vectorで、アドレス0018がLow−Priority Interrupt Vectorと書いてあります。
Vectorと書いてありますけれど、ここにテーブルを置いてもエラーになるだけです。
要するに、割込みが発生すると、このアドレスに書いてある命令が実行される、ということで、割込みプログラムの開始アドレスのことです。
PIC18F2550では割込みはPriority(優先度)の高い割込みと低い割込みの2種類を使うことができます。
たとえばTimerであるとかUSARTであるとかを割込みで使いたいという場合に、その割込みをHigh−Priorityとするか、Low−Priorityとするかを選択することができます。
High−Priorityに設定した割込みは、Low−Priorityの割込みの処理中でも受付けられるようです。
実はまだPIC18F2550の割込みは使ったことがありません。
DataSheetをざっと読んだだけですから間違っているかもしれません。
また割込みにプライオリティの別を設定せず、PIC16Fと同じような割込みモードにすることもできるようです。
デフォルトではプライリティ無しのモードになっているようですが、試したわけではありません。
いずれ確認することになると思いますから、そうしたら、またその結果をご報告いたします。
む?
デフォルトではPIC16Fと同じ、プライオリティ無しの割込みモードになる?
じゃあ、そのときの割込みのVector(エントリポイントのこと)は、どこになるのでしょう?
0008?
0018?
それとも0004?いや、これは、まさかねえ。
ああ。時間ができましたら、また、じっくり試して確認してみることにいたします。
それで。本題に戻ります。
[第486回]のプログラムでは、この割込みのためのアドレスをリザーブしておくために、そのような書き方にしていたのですが、この部分は割込み以外には使えない、ということではありません。
割込みを使わないのでしたら、普通のプログラムを書いてしまっても全く構いません。
ここでのテストプログラムは、「簡単なプログラム」というお題なのですから、使いもしない割込みのためのエリアをリザーブしておく必要はありませんでした。
そこで、今回のプログラムリストのように、そこをつぶしてしまってすっきりさせてしまった、というわけです。
もちろん、このプログラムも、ちゃんと問題無く実行できることを確認済みです。
2010.4.29upload
前へ
次へ
ホームページトップへ戻る