08月01日(月) 08月03日(水) 08月04日(木) 08月11日(木)
設定項目 | 設定内容 |
---|---|
ボーレート | 57600bps |
キャラクタビット | 8ビット |
ストップビット | 1ビット |
パリティビット | なし |
転送クロックソース | 内部クロックf1(=16MHz) |
CTS機能 | 禁止 |
/*------------------------------------------------------*/ /* ファイル名: sci.c */ /* 内容: シリアルで文字列送受信 */ /* 日付: 2005.06.29(Wed) */ /* 作成者: denno_ono */ /*------------------------------------------------------*/ #include<oaks_sfr.h> /* UART1初期化 */ typedef enum { // ボーレート設定リスト br4800 = 207, br9600 = 103, br14400 = 68, br19200 = 51, br28800 = 34, br31250 = 33, br57600 = 16 } BaudRate; /*-----------------------------------------------*/ /* 通信関係 */ /*-----------------------------------------------*/ // UART1初期化 void InitSCI3 (BaudRate b) { u1brg = b; // ボーレート設定 u1mr=0x05; //8ビット、内部クロック、1ストップビット、パリティなし u1c0=0x10; //クロックf1 u1c1=0x05; //送受信許可 ucon=0x00; //割り込み要因 } // 1文字送信 void rs_putc (char c) { while (ti_u1c1 == 0) ; u1tb = c; } // 文字列送信 void rs_puts (char _far *st) { while (*st) rs_putc (*st++); } // 受信データバッファより1文字読み出し char rs_getc (void) { char c; while (ri_u1c1 == 0) ; c = u1rbl; return c; } int main(void) { char rc; InitSCI3(br57600); while(1){ rc=rs_getc(); rs_puts("receive:"); rs_putc(rc); rs_putc(0x0D); rs_putc(0x0A); } return(0); } |
rs_putc(0x0D); rs_putc(0x0A);
0x0DはLF(改行)、 0x0AはCR(復帰)。
「小人つかいくん」にばかり頼っていてもしょうがないので、 自分でブラケットを作ってみました。
思ったより大変です。 ミニCNCフライス。 慣れていないせいか、不燃ごみをいくつも作ってしまいました。
やっと成功した一枚。 周りに失敗した穴が・・・
CNCで削りだせれば、後は何とかなるというものです。
Micro-MGにつけてみました。 不慣れでうまく使いこなせていないとはいえ、 さすがに手作業とは違います。
2mmの穴の位置がきちんと合っているので感動です。
設定項目 | 設定内容 |
---|---|
ボーレート | 57600bps |
キャラクタビット | 8ビット |
ストップビット | 1ビット |
パリティビット | なし |
転送クロックソース | 内部クロックf1(=16MHz) |
CTS機能 | 禁止 |
/*------------------------------------------------------*/ /* ファイル名: ser01.c */ /* 内容: シリアルで文字列送信 */ /* 日付: 2005.06.29(Wed) */ /* 作成者: denno_ono */ /*------------------------------------------------------*/ #include<oaks_sfr.h> typedef enum { // ボーレート設定リスト br4800 = 207, br9600 = 103, br14400 = 68, br19200 = 51, br28800 = 34, br31250 = 33, br57600 = 16 } BaudRate; /*-----------------------------------------------*/ /* 通信関係 */ /*-----------------------------------------------*/ // UART1初期化 void InitSCI3 (BaudRate b) { u1brg = b; // ボーレート設定 u1mr=0x05; //8ビット、内部クロック、1ストップビット、パリティなし u1c0=0x10; //クロックf1 u1c1=0x05; //送受信許可 ucon=0x00; //割り込み要因 } // 1文字送信 void rs_putc (char c) { while (ti_u1c1 == 0) ; u1tb = c; } // 文字列送信 void rs_puts (char _far *st) { while (*st) rs_putc (*st++); } int main(void) { char mess[10]="denno_ono"; InitSCI3(br57600); rs_puts(mess); while(1){ ; } return(0); } |
char mess[10]="denno_ono"; rs_puts(mess);
は、
rs_puts("denno_ono");
でも良い
Asynchronous:非同期の
シリアル信号をパラレル信号へ、パラレル信号をシリアル信号へ変換する通信回路。 シリアル通信に使われる。
スタートビットやストップビットなどもUARTによってつけ加えられる。
M16C/62のシリアルI/OはUART0、UART1、UART2およびSI/O3、4の5チャンネル。
UARTは、UART0、UART1、UART2でクロック非同期形シリアルI/Oモードを選択したときの機能。
UART1をクロック非同期形シリアルI/Oモードで利用する場合のレジスタの機能のみ記述
シンボル | アドレス | リセット値 |
---|---|---|
u1tb | 03AA-03AB | 不定 |
ビット | 機能 |
---|---|
b0 | 送信データ |
b1 | |
b2 | |
b3 | |
b4 | |
b5 | |
b6 | |
b7 | |
b0(b8) | |
b1(b9) | 何も配置されていない 書き込みは「0」を 読み出した場合、値は不定 |
b2(b10) | |
b3(b11) | |
b4(b12) | |
b5(b13) | |
b6(b14) | |
b7(b15) |
シンボル | アドレス | リセット値 |
---|---|---|
u1rb | 03AE-03AF | 不定 |
ビット | ビットシンボル | ビット名 | 機能 |
---|---|---|---|
b0 | - | - | 受信データ |
b1 | |||
b2 | |||
b3 | |||
b4 | |||
b5 | |||
b6 | |||
b7 | |||
b0(b8) | |||
b1(b9) | 何も配置されていない 書き込みは「0」を 読み出した場合、値は不定 | ||
b2(b10) | |||
b3(b11) | - | アービトレーションロスト検出フラグ | 無効(UART2のみ) |
b4(b12) | oer_u1rb | オーバーランエラーフラグ |
0:オーバーランエラーなし 1:オーバーランエラー発生 |
b5(b13) | fer_u1rb | フレーミングエラーフラグ |
0:フレーミングエラーなし 1:フレーミングエラー発生 |
b6(b14) | per_u1rb | パリティーエラーフラグ |
0:パリティーエラーなし 1:パリティーエラー発生 |
b7(b15) | sum_u1rb | エラーサムフラグ |
0:エラーなし 1:エラー発生 |
シンボル | アドレス | リセット値 |
---|---|---|
u1brg | 03A9 | 不定 |
ビット | 機能 | 設定可能値 |
---|---|---|
b0 | 転送速度がfi/[16(n+1)] (fi=f1,f8,f32)となるようなnを指定 | 00H-FFH(0-255) |
b1 | ||
b2 | ||
b3 | ||
b4 | ||
b5 | ||
b6 | ||
b7 |
シンボル | アドレス | リセット値 |
---|---|---|
u1mr | 03A8 | 00000000 |
ビット | ビットシンボル | ビット名 | 機能 |
---|---|---|---|
b0 | smd0_u1mr | シリアルI/Oモード選択ビット |
000:シリアルI/O無効 100:転送データ長7ビット 101:転送データ長8ビット 110:転送データ長9ビット 上記以外の値は設定しない |
b1 | smd1_u1mr | ||
b2 | smd2_u1mr | ||
b3 | ckdir_u1mr | 内/外部クロック選択ビット |
0:内部クロック 1:外部クロック |
b4 | stps_u1mr | ストップビット長選択ビット |
0:1ストップビット 1:2ストップビット |
b5 | pry_u1mr | パリティ奇/偶選択ビット |
パリティ許可ビットが許可のときのみ有効 0:奇数パリティ 1:偶数パリティ |
b6 | prye_u1mr | パリティ許可ビット |
0:パリティ禁止 1:パリティ許可 |
b7 | iopol_u1mr | スリープ選択ビット |
0:スリープモード解除 1:スリープモード選択 |
シンボル | アドレス | リセット値 |
---|---|---|
u1c0 | 03AC | 00001000 |
ビット | ビットシンボル | ビット名 | 機能 |
---|---|---|---|
b0 | clk0_u1c0 | BRGカウントソース選択ビット |
00:f1を選択 01:f8を選択 10:f32を選択 11:この値は設定しないこと |
b1 | clk1_u1c0 | ||
b2 | crs_u1c0 | CTS/RTS機能選択ビット |
b4が「0」のとき有効 0:CTS機能を選択 1:RTS機能を選択 |
b3 | txept_u1c0 | 送信レジスタ空フラグ |
0:送信レジスタにデータあり(送信中) 1:送信レジスタにデータなし(送信完了) |
b4 | crd_u1c0 | CTS/RTS禁止ビット |
0:CTS/RTS機能許可 1:CTS/RTS機能禁止 |
b5 | nch_u1c0 | データ出力選択ビット |
0:TxD1端子はCMOS出力 1:TxD1端子はNチャンネルオープンドレイン出力 |
b6 | ckpol_u1c0 | CLK極性選択ビット | 「0」を設定 |
b7 | uform_u1c0 | 転送フォーマット選択ビット | 「0」を設定 |
シンボル | アドレス | リセット値 |
---|---|---|
u1c1 | 03AD | 00000010 |
ビット | ビットシンボル | ビット名 | 機能 |
---|---|---|---|
b0 | te_u1c1 | 送信許可ビット |
0:送信禁止 1:送信許可 |
b1 | ti_u1c1 | 送信バッファ空フラグビット |
0:送信バッファレジスタにデータあり 1:送信バッファレジスタにデータなし |
b2 | re_u1c1 | 受信許可ビット |
0:受信禁止 1:受信許可 |
b3 | ri_u1c1 | 受信完了フラグ |
0:受信バッファレジスタにデータあり 1:受信バッファレジスタにデータなし |
b4 |
なにも配置されていない 書き込み場合には「0」を書き込む 読み出したとき、値は「0」 | ||
b5 | |||
b6 | |||
b7 |
シンボル | アドレス | リセット値 |
---|---|---|
ucon | 03B0 | X0000000 |
ビット | ビットシンボル | ビット名 | 機能 |
---|---|---|---|
b0 | u0irs | UART0送信割り込み要因選択ビット |
0:送信バッファ空(ti_u0c1=1) 1:送信完了(ti_u0c0=1) |
b1 | u1irs | UART1送信割り込み要因選択ビット |
0:送信バッファ空(ti_u1c1=1) 1:送信完了(ti_u1c0=1) |
b2 | u0rrm | UART0連続受信モード許可ビット | 「0」を設定する |
b3 | u1rrm | UART1連続受信モード許可ビット | 「0」を設定する |
b4 | clkmd0 | CLK,CLKS選択ビット0 | 無効 |
b5 | clkmd1 | CLK,CLKS選択ビット1 | 「0」を設定する |
b6 | 予約ビット | 「0」を設定する | |
b7 |
なにも配置されていない 書き込み場合には「0」を書き込む 読み出したとき、値は不定 |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||