« WEBメール | トップページ | はまっていること 2 »

2012年2月24日 (金)

はまっていること

2

PICマイクロコントローラを使い温度や気圧の測定をしようと、部品や開発システムを揃えていた。 先ずはサンプルプログラムをSDCCと云うフリーのCコンパイラでコンパイルし、プログラムのデータファイルを作り、PICkit 2プログラマ、AC162049 ユニバーサル・プログラミング・モジュール、AC164110 RJ-11 - ICSP 変換アダプタ の構成で書き込みを試みた。

ターゲットはPIC16F628A。 ターミナルからpk2cmdを起動

MacBook:~ yasuo$ PK2CMD -P
Auto-Detect: No known part found.

VPP Error detected.  Check target for proper connectivity.

失敗。デバイスが検出されない。
PIC12F683、PIC16F84Aで試験したが何れも失敗。 直接ブレッドボードを使いテスト。

1

pk2cmdで

MacBook:~ yasuo$ PK2CMD -P
Auto-Detect: Found part PIC16F628A.

Operation Succeeded

こんどは成功。
AC162049 ユニバーサル・プログラミング・モジュールのVPP 回路の発光ダイオードを点灯しないようにすると最初の写真の構成でもOKであった。
わざわざプログラミングモジュールやケーブルセットを買わなくても良かったかも。一定の金額以上注文すると送料無料と云うことで揃えてしまった。たしか、PICkit2の価格はDigkeyさんが一番安かった。
ここ迄くるまで、サンプルプログラムをコンパイルするとSDCCはエラーを何度も表示して、マニュアルを読み直したり、インターネットを検索したりで泥沼にはまり込む。SDCCのバージョンアップやサンプルプログラムが書かれたコンパイラの違いが原因。

SDCCの文法の亡備録。

インラインアセンブラを使う場合

#define NO_BIT_DEFINES

をデバイスのインクルードファイルの前に書く。

#define NO_BIT_DEFINESを指定した場合、特殊機能レジスタ(SFR)のビットのアクセスは

<sfrname>_bits.<bitname>

コンフィグビットの指定
#include<pic16fxx.h> //アドレス、特殊レジスタの構成
#include<stdint.h> //"uint16_t" を使う為に
static __code uint16_t __at (_CONFIG1) configword1 = _INTRC_IO & _CP_ALL & _WDT_OFF & [...];
static __code uint16_t __at (_CONFIG2) configword2 = [...];

PIC12F683、PIC16F84A、PIC16F628A、PICkit 2プログラマ、AC162049 ユニバーサル・プログラミング・モジュール、AC164110 RJ-11 - ICSP 変換アダプタはMicrochip Technology Inc.の製品。

|

« WEBメール | トップページ | はまっていること 2 »

コメント

さっぱりわかりません!!

投稿: ムー | 2012年2月27日 (月) 22:30

読んでいただきありがとうございます。
文章力が乏しく、自分でも書き直さなくてはと思っています。文中、記号を入れたもんでシッチャカメッチャかになり修正し余計解らなく成りました。
これから途中経過をなるべくアップしてご理解いただけるようにします。

投稿: full | 2012年2月28日 (火) 10:16

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« WEBメール | トップページ | はまっていること 2 »