skyriver さん
検索ボックス
マイカテゴリー
連載記事
Z80チップサイズCP/Mボード
GAL使用のZ80コンパクトボード
MC68KチップサイズCP/M-68Kボード
ポケコン(G850)用拡張基板
DIP IC13個構成の自作8bitCPU
レトロマイコン86ボードの構想
3チップ構成Pic24CPM-68Kマイコン
GALを使った最小構成のZ80マイコン
3チップ構成Pic24CPMマイコン
PIC24FJで4足ロボットの製作
独自言語 (picle) on PIC24FJ
PIC24FJ64GAでGAME言語
OneBitLoader (ブートローダー)
デジタル式定電流放電器
カッティングマシンでプリント基板製作
ロボット掃除機LAQULITO
赤外線での制御
1bitシリアル通信
PIC24FJ
PIC16F886
GAL使用のZ80コンパクトボード
MC68KチップサイズCP/M-68Kボード
ポケコン(G850)用拡張基板
DIP IC13個構成の自作8bitCPU
レトロマイコン86ボードの構想
3チップ構成Pic24CPM-68Kマイコン
GALを使った最小構成のZ80マイコン
3チップ構成Pic24CPMマイコン
PIC24FJで4足ロボットの製作
独自言語 (picle) on PIC24FJ
PIC24FJ64GAでGAME言語
OneBitLoader (ブートローダー)
デジタル式定電流放電器
カッティングマシンでプリント基板製作
ロボット掃除機LAQULITO
赤外線での制御
1bitシリアル通信
PIC24FJ
PIC16F886
お勧め記事
- 3チップ構成Pic24CPM68Kマイコン(CP/M-68K起動までの作業まとめ)
- 3チップ構成Pic24CPMマイコン(CP/M起動までの作業まとめ)
- CNCでの両面基板制作(Via処理含む)
- 両面基板制作(オブラート転写方式)
- picle compiler on PIC24FJ
- PIC24FJ64GAでGAME言語
- OneBitLoader が PIC24FJ64GA に対応(80word版ブートローダー)
- PIC24FJ64GAでのアセンブラ環境覚書
- 5V用LCDを3V駆動時の部品削減方法
- フィラメントの湿気対策
- シガレットケースの作成
- ダヴィンチ特有のフィラメント詰まりの原因と対策
- フィラメントホルダ
- EEPROMメモリチップインターフェース(UNI/O)の実装実験
- RaspberryPi でチャットサーバ
- バットディテクター(Bat Detector)の製作
- バーサライタの製作
- 電源電流モニタの製作
最新記事一覧
- ワイヤリングペンの作成(その2)
- フィラメント乾燥機
- HD64180Compact(その..
- HD64180Compact(その..
- HD64180Compact(その..
- HD64180Compact(その..
- HD64180Compact(その..
- メモリ上で実際に動くプログラム(そ..
- HD64180Compact(その..
- メモリ上で実際に動くプログラム(そ..
- 最近遊んだMPU
- メモリ上で実際に動くプログラム
- ポケコン(PC-G850)用小型シ..
- ポケコン(PC-G850)用小型シ..
- スキャナーの購入
- ポケコン(PC-G850)用小型シ..
- 小型ミシン(Cute)の修理
- ポケコン(PC-G850)用小型シ..
- プロッターの購入(その3)問題点と..
- プロッターの購入(その2)環境構築
カレンダー
月別表示
- 2024年04月(2)
- 2024年03月(2)
- 2024年02月(5)
- 2024年01月(3)
- 2023年12月(5)
- 2023年11月(4)
- 2023年10月(4)
- 2023年09月(4)
- 2023年08月(4)
- 2023年07月(5)
- 2023年06月(4)
- 2023年05月(4)
- 2023年04月(5)
- 2023年03月(4)
- 2023年02月(4)
- 2023年01月(7)
- 2022年12月(4)
- 2022年11月(3)
- 2022年10月(6)
- 2022年09月(4)
- 2022年08月(4)
- 2022年07月(3)
- 2022年06月(5)
- 2022年05月(1)
- 2022年04月(1)
- 2022年03月(3)
- 2022年02月(4)
- 2022年01月(8)
- 2021年12月(10)
- 2021年11月(7)
skyriver さんがコメントした記事
- ポケコン(G850)用拡張ボード(..
- CP/M用hexローダーの製作
- CP/M-68K シミュレータ
- 3チップ構成Pic24CPMマイコ..
- コインホルダーの製作
- 2023年あけおめ
- GAME言語に関する情報源
- TL866II Plus用VPP:..
- Pic24MC68Kマイコン(その..
- ポケコン(G850)用拡張基板の制..
- 3チップ構成68Kマイコンの構想(..
- Z80GALの構想(その8)Blo..
- 本ブログ内の画像が表示されない場合..
- OneLineシリアル通信I/Fの..
- 実機環境でのディバッグ環境の改善検..
- バーサライタの製作 2005年1..
- バットディテクター(Bat Det..
- TL866II アダプタのスイッチ..
- テスターの修理
- レトロマイコン86ボードの構想(そ..
最近のコメント
- ポケコン(G850)用拡張ボード(..
⇒ PC-G850Sで動作したとの..
⇒ こんにちは. はじめまして. ..
- CP/M用hexローダーの製作
⇒ なるほど。ファイル化の手間が省..
⇒ このローダーはあくまでもCP..
⇒ CP/Mの機能だけでやろうとす..
- CP/M-68K シミュレータ
⇒ 上のコメントにあるように本文..
⇒ 下記の記事で本ページのリンクが..
- 3チップ構成Pic24CPMマイコ..
⇒ CでGAME言語のインタプリタ..
⇒ GAME言語は懐かしいです。僕..
⇒ コメントありがとうございます..
⇒ GAME言語、懐かしいです。大..
⇒ コメントありがとうございます..
⇒ 懐かしいGAME言語ですね. ..
⇒ GAMEソースの行番号をリナン..
⇒ CP/M-80用GAME80..
⇒ 起動時のメモリマップは下記の..
⇒ 起動のたびにコンパイラをコン..
⇒ CP/Mで起動時にGAME本..
⇒ コメントで書いた文字列出力部..
⇒ 文字列表示のコンパイルコード..
⇒ コンパイラが生成するコードで..
⇒ CP/M版GAMEを修正しまし..
skyriver さんの記事をnice!と思った人 (全13人)
このブログの更新情報が届きます
すでにブログをお持ちの方は[こちら]
以下Googleのキャッシュから復活したコメント内容です
--------------------------------------------------
この記事へのコメント
初めまして、私もPICいじってます。
http://yasuu.paslog.jp/
http://www.netlaputa.ne.jp/~yasuu/
よろしく。
Posted by 石川 at 2005年01月04日 02:06
--------------------------------------------------
はじめまして。
超有名人のtokoさんとお知り合いなんですね。
私はまずは受信機からの信号でモータドライブしようと思ってます。
一応ソフトは出来上がりシミュレータで動作確認しようと思っている
ところです。
timer0の割込みで32段階のPWM出力(880Hz)し、timer1
で受信機からの制御信号幅をカウントしています。
制御信号幅のカウントは割込みの影響を受けないように/T1Gを
使っています。
受信機からの信号は/TG1に使うには論理が逆なのでPIC内臓
のコンパレータを使って反転します。
ソフトはいいとして実際にハードを組む時には流石にオシロがない
と辛いなぁ〜と思っています。
Posted by さと at 2005年01月06日 02:01
--------------------------------------------------
UNIONの受信機からの信号を入力してようやくPWD出力(64段階に拡張)までできました。
入力信号のパルス幅の最大値/最少値は最初にスティックを最大→最少に動作させることで設定するようにしています。
土曜日に秋月で「USB接続 12ビット2chオシロ「Stingray」を購入したお蔭で当初心配していたハードに入れてからの確認もすんなり行きました^^
Posted by さと at 2005年01月10日 17:11
--------------------------------------------------
PWT出力信号の先に土曜日に秋葉を探して買ってきたMOSFET(IRFD120)をつないでモータを付けたら面白いように回りました^^
FETはON抵抗が0.27Ωと若干高めですがニッカド7.2Vで480モータをフルスロットルで暫く回してもほの暖かい程度の発熱でしたので問題ないと思います。5Vのレギュレータを小型の物にしPICをフラットパッケージにすれば実用出来るのではないかと思います。
Posted by さと at 2005年01月10日 22:13
--------------------------------------------------
ん〜、やはりFETの0.27Ωの抵抗は大きすぎるみたいでユニオンの5Aのスピコンと比較したらフルスロットルでのモーターのパワーの差がかなりありました。もっと低抵抗のFEPを探さなと・・・
コンパレータ入力がまだ一個あまっているのでオートカット機能も付けてみたい思います。
Posted by さと at 2005年01月15日 01:40
--------------------------------------------------
素晴らしい!。
ご自分で開発されてるんですね、すごい!。
スロットルのピーク出力についてはプログラムの組み方も関係します。toko氏のHPにヒントがあります。
Posted by 石川 at 2005年02月04日 00:14
--------------------------------------------------
フルスロットルではデューティー100%にしているのでやはりFETのON抵抗の問題だと思います。
PWM制御でのデューティー比を制御するために独自の固定小数点演算等、全てアセンブラで組んでいましたが、開発効率が悪いためPICのコンパイラについてちょっと調べてみました。(アセンブラで組むこと自体の楽しさは十分あるのですが)
freeで使えるものはGNU系では
http://www.gnupic.org/
にいくつかありますがコンパイルしたコードがイマイチで使えそうなものではJAL(CではなくPascal系の独自言語)が一番まともでした。
今回Forth系のコンパイラは評価していません。Forthは以前(CP/M80上で^^;)使ったこともあるのですが、やはりCの方が好きなので・・
JALを使おうかと決めかけましたが、更に調べたところ商用コンパイラで評価用として只で使えるものがあることがわかりました。
商用コンパイラのfree版としてHI−TECHのPICC Light
http://www.htsoft.com/products/PICClite.php
とBKDのCC5X
http://www.bknd.com/cc5x/index.shtml
があり、これらは流石にかなりまともなコードを吐き出すので使って見ようかという気になります(でもアセンブラで書いたコードの9割程度の速度ですが、開発効率は10倍近くになるので) 個人的にはCC5Xの方が好ましく思いましたが只で使う場合の制限がキツイのでPICC Lightを使うことにしました。(こちらはほぼ無制限に使えるので)
Posted by さと at 2005年02月11日 02:19
--------------------------------------------------
初めまして、自分もPICでスピードコントローラを作りたいと思っています。
ここの書き込みも参考にさせてもらってプログラムは一応完成し現在LEDを点灯させて動作テスト中なのですが、あるポイントで動きが安定しません(ブレーキとアクセルが行ったり来たりします)。
たぶん信号幅計測中にTMR0の割り込みが入るせいだと思うのですが、計測中の割り込みを禁止するとPWM出力が全体的に不安定に・・・難しいですね・・・
また参考にさせてもらいたいと思いますので更新楽しみにしています。
よろしくお願いします。
Posted by ふる at 2005年03月03日 00:27
--------------------------------------------------
ふるさん、はじめまして。
PWMでタイマー割り込みを使っている場合、受信機からのパルス幅をソフトカウントすると、どうしても割り込みの影響は避けがたいはずです。
最初の方に書いたように/T1Gを使ってハードカウントすれば、解像度も上がりますし、ソフト的なタイミングも余裕シャクシャクですよ。(1ポート余分にI/Oが必要になりますが)
他にはPICでのテレビゲーム制作の例のように割り込みを一切使わずにソフトだけで多重処理(タイマー待ちでNOPを入れるべきすき間に他の処理コードを詰め込んで処理する)手も無くはないですがこれはかなり骨の折れる作業だと思います。
Posted by さと at 2005年03月05日 02:03
返信ありがとうございます。
実はここの書き込みにあった「/T1Gを使って」という所にヒントがあるような気がしてずっと調べていました。
自分が持っている参考書にはTMR1GEビットについて載っていなかったので存在すら知らなかったのでのす。
「GP4とTMR1ONビットのANDでカウントアップをハード的に止める事が出来るのかな」という所までなんとなく解ったのですが正しいでしょうか??
Posted by ふる at 2005年03月05日 10:31
Timer1はTMR1GE=1にすることで/T1G入力によりカウント条件をゲート制御できます。
具体的には/T1Gがlowの時だけカウントアップできます。しかし受信機からの信号幅をカウントするためにhighの状態でカウントアップするようにしなければならないでの受信機からの信号を反転する必要があります。
反転するためには受信機からの信号を一旦、コンパレータのマイナス側で受けて内部リファレンス値(2.5V前後に設定)との比較結果をGP2/COUTに出力するようにします。この出力信号を/T1Gに入れます。
PICのマニュアルは本家のMicrochipホームページからダウンロードできます(英語ですが・・^^;)
日本Microchipのホームページには16F8Xだけ日本語マニュアルがありました(他の型のマニュアルも積極的に日本語化して欲しいところではありますが)
Posted by さと at 2005年03月05日 13:16
--------------------------------------------------
詳しい説明ありがとうございます。
データシートの「Timer1 is on if T1G pin is low」て言う所ですね、そうすると信号をコンパレータで反転する必要があるのか〜。
トランジスタを使ってハード的に反転するのもありかな?
でもこう英語のデータシートって意味が解ってから見ると納得って感じですね、遅いか!!
今回スピードコントローラのプログラムをしてだいぶレベルが上がった気がします。タイマー、割り込み、データテーブルなど今まで避けてた部分に取り組めました。
T1G試してみます、ハードを変更しないといけなそうなので少し時間がかかりそうですが結果報告します。
またお願いします。
Posted by ふる at 2005年03月06日 17:23
--------------------------------------------------
PIC用freeコンパイラ情報です。
インターネットを閲覧していたらSDCCがPICの14&16bitに対応していることを見つけました。
http://sdcc.sourceforge.net/
sdcc -S -V -mpic14 -p12F629 %1
というようなバッチファイルでPIC12F629のソースをコンパイルしようとしてみたところ
pic12f629.h:61: warning 115: unknown or unsupported #pragma directive 'memmap 0x
0000 0x0000 SFR 0x000
なんてwarningがでてなかなかコンパイルが通らない・・・^^;
バンク切替えコードの最適化等もサポートしているようでなかなかよさげではあるのですが・・・
マニュアルを良く見たらPICは「In development, not complete」だそうですorz
完全対応版を待つしかないようですね。
Posted by さと at 2006年09月18日 02:10
--------------------------------------------------
フリーのCコンパイラSDCCですが、最近のものはPICに十分対応できているようです。
ただし、最近のsnapshot版でないと問題があるかもしれません。
Vine Linuxへインストールして使っています。
http://shino.pos.to/eda/pic.html
Windows用バイナリも配布されています。
Posted by シノバー at 2007年04月20日 19:14
by さと (2008-01-04 02:26)