Home> programming > PSoCの型宣言

PSoCの型宣言

社内開発用に必要になった冶具があって、その辺に転がってた古い試験冶具からモーターやら金具やら取り外して制御部分を追加したりしつつ1台でっち上げる、ってのをここ暫くやってた。
(一応似たような冶具を設計ドキュメント書いて以前工場に作らせてたので、品証に冶具作成のお鉢が回ってきたという)

機構部分の改造と制御回路自体は、設計から組み立てまで3日くらいで終わったんだけど、PSoCで制御ファームウェアを書くのに、色々と作法を忘れてるせいで、結局コーディングに半月くらい掛かった。
まぁ0.5人月だとすると...経費が30万くらい。いつも頼んでた国内の冶具屋さんだと50万から100万くらいの見積もり返ってくるだろうから、若干安く済んだかなぁ。
(ホントは1週間くらいで片付けるつもりだったのは内緒)

冶具の使途は具体的には書けないんだが、
  • ギアードDCモータの回転制御
  • 試験回数の上限値設定(停止させる)
  • 設定値の保存と呼び出し(外付けEEPROM)
  • LCDへの表示(回転速度とトータル回転数)
ってあたりを実装する必要があった。

回転速度は±5%くらいの誤差が許容されるので、速度表示はPSoC1の内部オシレータで32kHz吐いてみたら案外いい精度(60±1Sec以内)、どうせ室内でしか使用しないしそのまま使ってる。

回転検知はフォトトラで回転を16分割したフィンを作って動きを読み取らせた。

この辺りまでは全然サクサク書いてたんだけど、EEPROMへの設定値保存のやり方を忘れてたのと、10進データを16進データに変換して保存する辺りのアルゴリズムを再発明したりしてたら結構手間取ってしまった。
飛び込みの仕事をちょくちょくやりながらも、忙しい時期だったら1ヶ月くらい掛かってたかも。

以下、ドキュメント探すのに手間取ったので、取りあえずメモ。
あくまでも8bitなPSoC1シリーズの話。

char:1Byte
文字列の格納に用いる。シングルバイト。
a unsigned 0...255
signed -128...127

int または short(short int):2Byte
整数の格納に用いる。
unsigned 0...65535
signed -32768...32767

long:4Byte
short(int)の格納できる整数範囲を広くしたもの。
unsigned 0...4294967295
signed -2147483648...2147483647

float または double:4Byte
単精度実数と倍精度実数...のはずだけど、PSoC1においてはデータサイズが同じ4バイトしか選べないらしい。
1.175e-38...3.40e+38

enum:1Byte または 2Byte
※256未満の値を記述する場合には1バイト。256以上の値を記述する場合は2バイト。
エイリアスリストの記述に用いる。
0...65535

そろそろ手を入れる部分が無くなって、自分の手を離れる寸前。
やっぱりPSoCが一番手に馴染んでるし、こういうプロトタイピング的な用途には向いてると思う。

最近は、簡単に多重割り込み的な挙動を実装する方法について通勤中に考えたりしてる。
あとは、そろそろ自宅の電子工作用電源もパワーアップさせたいので、作り直そうかなぁ、とか。

Trackbacks:0

TrackBack URL for this entry
https://w3neu.net/mt/mt-tb.cgi/250
Listed below are links to weblogs that reference
PSoCの型宣言 from Sequentially Altered Days

Comments:0

Comment Form

Index of all entries

Home> programming > PSoCの型宣言

Categories
Archives
Syndication

Return to page top