続・進め!GK隊!!

Yahooから移行しました。色々やってます。

PIC18F4550をアセンブラと気合で攻略



いやー、夏です。

海です。プールです。



そんな私は海や川に行ったら溺死するし、
プールは大勢の人が入っているのであまり好きではありません。

超非リア充的生活でござるの巻。

アウトドアでは蚊に刺し殺されるだろうし、熊に殴り殺されます。
俺はスペランカーの主人公になれると信じています。





そんな俺は部屋に篭って、この前作ったPICボードで遊んでました。

レポート?
知らんがな。




そして今回の目的は、前に秋葉原で買っておいたPIC18F4550というチップを使うことです。

上のリンクは秋月で、値段は400円です。



18F系の使い方が謎だったのでネットで調べてみたのですが、MPLAB C18の情報ばかりで、(これでも少ない

MPASMの情報なんて実質0に近かったです。

なので、少し攻略して俺が載せてしまえとか思って作ってみました。






イメージ 1

PIC18F4550のスペックは

プログラムメモリ・・・32KB
RAM・・・2K
そしてUSB内蔵。(しかもUSB2.0


プログラムメモリはMPLABで見たら16Kワードとなっていましたが、
18Fシリーズでは1命令に2バイト使うらしいです。


そしてUSB内蔵なのでRC3(だっけ?)がUSB専用のピンとなっており、I/Oとして使えません。


こんなんだったら20円高くても4520を買うべきだったなぁ、と後悔。
USBなんて俺にはまだ早いです。




プログラムは、まずConfigの書き方が変わって

__CONFIG ・・・

とか書くと怒られます。


書き方は

CONFIG  FOSC = HS,WDT = OFF ・・・

のように書くのですが、何故か書き込もうとするとコンフィグワードが足りないとか言われて、
HS_OSCの設定まで無効になってしまいました。

秋月ライタを使ってるならたぶん問題無いと思いますけど。





改善する方法は、上のConfigureからこんなのを出して
Configuration Bits set in code.のチェックを外します。
英語のメッセージが出るけど、読めないので気にしない。


イメージ 2


ここで変えていきます。




セラロックを使うならOSCをUSB-HS、
リセットスイッチを使うのでMCLREをEnabledに、
LowVoltageProgrammingを使わないのでLVPをDisabledにします。

LVPはデフォで有効になってる上、有効だとRB5が使えなくなるので注意です。



あとクロックのPLL機能が付いてるので使ってみてもいいですね。
HS+PLLにすると、恐ろしい速さで動いてびびりました。






設定が終わったらFile→Exportで出力しましょう!
チェックはそのままでOKです。
HEXファイルが何かでかくなってますけど、使えるのでご安心を。




次。


18Fになったからといって、16F系のプログラムを移植するのに追加することはありません。
逆に減らします。


SFRを変更するのに 「BSF STATUS,RP0」とか使ってたのですが、
命令がハイテクになったので必要ありません。
いきなり「CLRF TRISB」とか使ってOKです


あとページ切り替えの「BSF PCLATH,3」とかも要らなくなりました。
これらは付いたままだと怒られるので移植する時は消しましょう。






・・・誰に説明してるんだ?

ま、検索とかから来て有効に使っていただけたら嬉しいです。(どや

PIC18は慣れれば凄いやつです。

ぶっちゃけ今は16Fの4桁バージョンを使えばいいと思いますけど。




イメージ 3


この前のプログラムを少し改造して移植してみました。

掛かった時間は、ハードオフのBGMが1週するくらいなのでお手軽ですw









20MHzで普通に動かしてる動画です。
左手で基板をいじり、右手でデジカメを押さえながら虫眼鏡を当ててるのでぐだぐだですけど。


このソースはそのうちHPで公開するので、欲しい方は明日来てみて下さい。
前公開したやつは駄目です、発振してませんでした。
あとトップ絵ください。







・・・おしまい。