So-net無料ブログ作成

その昔、高い塔を見てヤーウエイは言葉を乱れさせてしまおうと仰せられた。 [言葉]

東京にはなんでもとてつも高い塔が出来かけているという。

それとは関係ないが、sdccのソフトPWMソースが見つかって、

http://www.kuze.jp/pic/data/software_pwm.c

そのアルゴリズムを見てみたいと、コンパイルすることにした。

結果は、なかなか一筋縄でいくものではなく、

sdcc や Windows用gputils 

を使ってコンパイルするとエラーのでまくり、senshu氏のサイトその他に関連することは書いてあるものの

結局C言語は言葉が乱れすぎ、デバイスによってのレジスタ名の乱れ、バージョンの不統一

少しパッチを当ててレジスタ名を切り替えるも

16F88と16F648aでは ストラクチャ-の違いなど簡単には替えられない壁があった。

元のソースには「j」が宣言されているが使われていないのか、紛らわしい注意が表示される。

目的とするのは16F883ならハードデバイスがあるので処理が簡単になるが、

それらがない安物デバイスではソフトPWMを実装することでなんとか克服できないとあがいてみた結果、

なんとか、アセンブルをするものの、マシンコードが吐き出されない。

まあ何とも不便なものではある。

それは確かに同じ言語を開発しても 、まねしたと言われるからか、ユーザの囲い込みか、少しずつ違っていて、

その壁は大きく、越えにくい、やはりC言語は使い物にならないのだろうか。

 

さて、私にとって比較的敷居の低いjalv2にPWMがあった。

http://jallib.googlegroups.com/web/blog_16f88_board_sl_pwm_led.jal

16F88のデバイスでコンパイルすると

--pragma target CCP1MUX RB0 -- ccp1 pin on B0

をコメントアウトしないとエラーになった。

デバイスを16f648aに換えてみると同じにコンパイルできた。

これとソフトPWMを比較してにらめっこ中です。

 

 


コメント(0) 
メッセージを送る

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。