寄る年波には勝てぬ・・・でもC言語は便利(^^;
2012-12-01
そろそろ本格的に冬を迎えました。近くのエアコンの「暖房ノイズ攻撃」で、10KHzほどの間隔でキャリアが並んでいます。15mではS=7くらい・・・こっそり系の運用なんで、場所を特定して処置して貰うわけにも行かず・・・なんですが、TS-590切ってのノッチが頑張ってくれますから、昨冬のIC-703の時より安心。でも、邪魔は邪魔。その上、完全な冬型のCONDXとなれば、アクティビティは下がってしまいます
一方、今年は何と言っても「工作環境の改善」が大きく、この冬場は専ら「ガラクタ作り」に没頭したいと思っていますが、最近どうもちょっとした工作にPICを使いたくなる場面が多く、先週辺りからぼちぼちAD9834を使ったSGモドキを作ろうかしらん・・・と思えど、どうもプログラミングが面倒になってしまい、なかなか重い腰が上がりませんでした。
今日は一昨日の飲み過ぎ&寝不足から爆睡した上に、なんと午後からも微睡んでしまいました。その上、子供のPCが調子悪で「我が家の保守サービス長」たる自分の出番・・・。結局、午後が丸々潰れて夕飯を終えて漸く落ち着き、さぁて・・・とPICのプログラム作りを始めたのですが、やはり何ともどんよりとした気持ちになってしまい捗らず
そこで、新しいチップの情報でも拾おうと何気にMicrichip社のHPなど眺めていると、MPLAB-IDE付属のC言語環境が刷新している様子。「ふーん、XC8ねぇ・・・今年の3月に登場したのか・・・ふむふむ」と読み進めていくと、ちょっと味見してみようかなぁという悪魔の囁きが
アセンブラとC言語・・・無論、生産性から言えば後者の圧倒的勝利なんですが、オプティマイズ(最適化:コンパイルされた機械語をコンパクトにまとめていく機能)が上手くないと、小さなメモリには乗らない、処理速度が遅いなどの弊害が出るため嫌った部分があって、アセンブラの緻密さや高速性に傾倒しがちな自分としては「御法度」と決めていたんです。しかし、これでプログラム作成が億劫になっては本末転倒
さらに、少し前から「必要に迫られる部分だけインラインで『#asm ~ #endasm』を使ってきゃいいか」・・・と思い始めていた部分もあって、禁断のC言語環境を構築してしまいました

少し覚書しておきます。
◆ ANSI準拠で前方参照は無論Warning対象
◆ C言語程度の変数名は、アセンブラでは先頭にアンスコが要る
◆ アセンブルリストは「.lst」ではき出される
◆ 24ビット変数として「short」が使える
◆ Warning 1273は、無償版では必ず出てしまう
アセンブルリストを少し覗いてみました。longの計算ロジックなどではちゃんと必要なライブラリが結合される反面、流石に結構大きくなりますから注意が必要なのは無論のことですが、計算の必要な部分を上手く関数に括り出す工夫などで逃げたり、最悪はプログラムメモリ容量の大きいチップをチョイスしたりすれば済むわけですし、PICKit3では18F/24Fも焼けるわけですから、こっちに逃げていくのもありかも・・・と、今いまは言い訳を探しています
細かなpragmaやマクロなどについては追々覚えていくとして、ひとまずこれで今回のSGモドキは「後学のため」という名目で、C言語ベースで作ってしまおうかと思います。

一方、今年は何と言っても「工作環境の改善」が大きく、この冬場は専ら「ガラクタ作り」に没頭したいと思っていますが、最近どうもちょっとした工作にPICを使いたくなる場面が多く、先週辺りからぼちぼちAD9834を使ったSGモドキを作ろうかしらん・・・と思えど、どうもプログラミングが面倒になってしまい、なかなか重い腰が上がりませんでした。
今日は一昨日の飲み過ぎ&寝不足から爆睡した上に、なんと午後からも微睡んでしまいました。その上、子供のPCが調子悪で「我が家の保守サービス長」たる自分の出番・・・。結局、午後が丸々潰れて夕飯を終えて漸く落ち着き、さぁて・・・とPICのプログラム作りを始めたのですが、やはり何ともどんよりとした気持ちになってしまい捗らず

そこで、新しいチップの情報でも拾おうと何気にMicrichip社のHPなど眺めていると、MPLAB-IDE付属のC言語環境が刷新している様子。「ふーん、XC8ねぇ・・・今年の3月に登場したのか・・・ふむふむ」と読み進めていくと、ちょっと味見してみようかなぁという悪魔の囁きが

アセンブラとC言語・・・無論、生産性から言えば後者の圧倒的勝利なんですが、オプティマイズ(最適化:コンパイルされた機械語をコンパクトにまとめていく機能)が上手くないと、小さなメモリには乗らない、処理速度が遅いなどの弊害が出るため嫌った部分があって、アセンブラの緻密さや高速性に傾倒しがちな自分としては「御法度」と決めていたんです。しかし、これでプログラム作成が億劫になっては本末転倒



少し覚書しておきます。
◆ ANSI準拠で前方参照は無論Warning対象
◆ C言語程度の変数名は、アセンブラでは先頭にアンスコが要る
◆ アセンブルリストは「.lst」ではき出される
◆ 24ビット変数として「short」が使える
◆ Warning 1273は、無償版では必ず出てしまう
アセンブルリストを少し覗いてみました。longの計算ロジックなどではちゃんと必要なライブラリが結合される反面、流石に結構大きくなりますから注意が必要なのは無論のことですが、計算の必要な部分を上手く関数に括り出す工夫などで逃げたり、最悪はプログラムメモリ容量の大きいチップをチョイスしたりすれば済むわけですし、PICKit3では18F/24Fも焼けるわけですから、こっちに逃げていくのもありかも・・・と、今いまは言い訳を探しています

細かなpragmaやマクロなどについては追々覚えていくとして、ひとまずこれで今回のSGモドキは「後学のため」という名目で、C言語ベースで作ってしまおうかと思います。