出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例. Example of global functions for setting the output port bits as open-drain or push-pull.

Dependencies:   mbed UIT_SetOutputPortType

Revision:
0:09d27b602681
Child:
1:5bf39be14d61
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Aug 22 03:05:33 2015 +0000
@@ -0,0 +1,46 @@
+//---------------------------------------------------------------------------------
+// 出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例
+// (Example of global functions for setting the output port bit
+//  as open-drain or push-pull)
+//
+// 2015/08/22, Copyright (c) 2015 MIKAMI, Naoki
+//---------------------------------------------------------------------------------
+
+#include "SetOutputPortType.hpp"
+using namespace Mikami;
+
+BusOut bus_(D2, D3, D4, D5, D6, D7, D8);
+DigitalIn uButton_(USER_BUTTON);
+
+// ユーザ・ボタン(青のボタン)を押すまで待つ関数 
+void WaitButton(char str[])
+{
+    printf(str);
+    printf("\r\nPush blue button");
+    while (uButton_ == 1) {}
+    wait(0.5);
+}
+
+int main()
+{
+// MODER    I/O ポートを,入力/汎用出力/代替え機能/アナログに設定するレジスタ
+// PUPDR    I/O ポートを,プルアップ,プルダウン,プルアップ・プルダウンなしに設定するレジスタ
+// OTYPER   出力のタイプをプッシュプル/オープンドレインに設定するレジスタ
+    printf("\r\n\nGPIOB mode Reg.: 0x%08x", GPIOB->MODER);
+    printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%08x", GPIOB->PUPDR);
+    
+    bus_ = 0x7F;
+    SetOpenDrain(D2, D3, D4, D5, D6, D7, D8);
+    WaitButton("\r\n\nD2 - D8: open drain");
+    printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%04x", GPIOB->OTYPER);
+    
+    SetPushPull(D2, D3, D4, D5, D6, D7, D8);
+    WaitButton("\r\nD2 - D8: push-pull");
+    SetOpenDrain(D2);
+    WaitButton("\r\nD2: open drain");
+    
+    SetOpenDrain(D3, D4);
+    printf("\r\nD2 - D4: open drain");
+    
+    while (true);
+}
\ No newline at end of file