Presentation is loading. Please wait.

Presentation is loading. Please wait.

R8C/Tiny I/Oポートの仕組み.

Similar presentations


Presentation on theme: "R8C/Tiny I/Oポートの仕組み."— Presentation transcript:

1 R8C/Tiny I/Oポートの仕組み

2 メモリ・マップトI/O方式 =メモリ・マップトI/O方式 SFR : Special Function Register(特殊機能レジスタ)
メモリ・マップに内蔵モジュール機能を割り当てて使用する方式 =メモリ・マップトI/O方式

3 パソコンでのメモリへの書き込み プログラムをコンパイル C言語プログラム : 変数xに1を記憶 x=1; 外部メモリ 1 1 CPU 1
  : 変数xに1を記憶 x=1; 外部メモリ CPU 変数xに割り当てられたメモリ

4 パソコンでのI/Oポートへの出力 C言語プログラム ポートアドレス100のI/Oポートに1を出力 : p0=100;
  : p0=100; ポートアドレス100のI/Oポートに1を出力 I/Oポート(メモリとは別) outp( p0 , 1); CPU ポート番号100のI/Oポート 5Vを外部へ出力

5 マイコンのメモリへの書き込み C言語プログラム   : x=1; マイコン 内部メモリ CPUコア 変数xに割り当てられたメモリ

6 メモリの一部に割り当てられたSFR(特殊機能レジスタ)
マイコンのI/Oポートへの出力 C言語プログラム   : メモリの一部に割り当てられたSFR(特殊機能レジスタ) p1_1=1; マイコン 内部メモリ 変数p1_1に割り当てられたメモリ・アドレス 外部5Vを出力 CPUコア

7 サンプルプログラム SFRの定義(p1_1などが使えるようにしている) 関数のプロトタイプ宣言 I/Oポートの初期化 p1_7==0
#include “sfr_r815.h” void set_IO(void); Void main(void) { set_IO(); while(1){ if( p1_7 == 0){ p1_1 = 0; }else{ p1_1 = 1; } if( p3_ 3== 0){ p1_2 = 0; p1_2 = 1; p1_3 = ~ p1_3; for( i=0 ; i<10000 ; i++); Void set_IO(void) drr1 = 1; drr2 = 1; pd1_1 = 1; pd1_2 = 1; p1_3 = 1; SFRの定義(p1_1などが使えるようにしている) 関数のプロトタイプ宣言 I/Oポートの初期化 p1_7==0 ポートp1_7の電圧を読み込み0Vか確認(0VということはスイッチON) p1_1=0 ポートp1_1のLEDを点灯(0V出力時にLEDは光る) p1_3=~p1_3 ポートp1_3を反転 ダミーのループ (時間稼ぎ) drr1=1 ポートp1_1を大電流に設定(駆動能力が15mAになりLEDを点灯できる) pd1_1=1 ポートp1_1を出力に設定 p1_1=1 ポートp1_1の初期値を5Vに設定(LED消灯)

8 I/Oポートの仕組みテストプログラム void main(void){ *((char*)100)=0xFFFF; }


Download ppt "R8C/Tiny I/Oポートの仕組み."

Similar presentations


Ads by Google