出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例. Example of global functions for setting the output port bits as open-drain or push-pull.
Dependencies: mbed UIT_SetOutputPortType
Diff: main.cpp
- 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