目次
前
次
通信仕様
画像データを取得するため、パーソナルコンピュータの端末
ソフトを利用します。
端末ソフトには、フリーソフトのTeraTermを使います。
通信プロトコルを決めます。
- データ転送速度 38400bps
- データ長 8ビット
- ストップビット 1ビット
- パリティ なし
- フロー制御 なし
- コマンドのデリミタは、'\r'
マイコンの受信処理
パーソナルコンピュータからのコマンドは、受信割込みで取得します。
受信バッファを用意し、デリミタが来るまで、バッファに保存します。
コマンドが来た場合は、フラグを利用して上位処理に通知します。
受信バッファに、コマンドが入った時点で、フラグUFLAGで上位に通知します。
UBYTE sbuf[8] ;
UBYTE sindex ;
SIGNAL(UART_RX_vect)
{
volatile UBYTE ch ;
/* get 1 charactor */
ch = UDR ;
/* store */
*(sbuf+sindex) = ch ;
sindex++ ;
/* judge */
if ( ch == '\r' ) {
UFLAG = ON ;
sindex = 0 ;
}
}
main関数の中では、フラグUFLAGの論理値を判断して、コマンドインタプリタに
必要な処理を委託します。
while ( ON ) {
/* USART handling */
if ( UFLAG ) {
/* clear flag */
UFLAG = OFF ;
/* interpreter */
uart_interpreter();
}
}
目次
前
次