2010年11月18日木曜日

PICCでシリアル通信(送信のみ)

タイマ割り込みを使用した方法


int SC = 0;
int SD = 89;
bit SF = 0;

static void interrupt intr(void) {
T0IF = 0;
TMR0 = 7;

if (SF) {
if (SC == 0) RB0 = 0;
if (SC > 0 && SC < 9) RB0 = ((SD >> (SC - 1)) & 0b00000001);
if (SC == 9) RB0 = 1;
SC++;
if (SC > 9) {
SC = 0;
SF = 0;
}
}
}

ということでタイマ割り込みは使用できなくなります...
しかし自分は日常的にタイマ割り込みを使うわけでもないので
手っ取り早くPCとかに文字列を送信したければこれで十分な気が

クロック20MHzで9600bps
8ビットパリティなしストップビット1 かな?
PICCLiteが対応してるPICであれば基本的に何でも動作可能だと思います
タイマはプリスケーラ000です
要はタイマ割り込みに103.5μS程度で入ればいい
通信速度は9600が一般的だからこの数値ですが
「もっとゆっくりでいいし!!!」っていう人は各自設定してください
上はどれくらいまで送信できるかわかりませんが
かなりの部分でクロックの精度に依存してくると思います

とりあえずこのプログラムだと8ピンから28ピンとかだいたい使用可能だと思う

0 件のコメント:

コメントを投稿