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

Dependencies:   mbed UIT_SetOutputPortType

Committer:
MikamiUitOpen
Date:
Sat Aug 22 03:05:33 2015 +0000
Revision:
0:09d27b602681
Child:
1:5bf39be14d61
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:09d27b602681 1 //---------------------------------------------------------------------------------
MikamiUitOpen 0:09d27b602681 2 // 出力ポートを,オープンドレインまたはプッシュプルに設定するグローバル関数の使用例
MikamiUitOpen 0:09d27b602681 3 // (Example of global functions for setting the output port bit
MikamiUitOpen 0:09d27b602681 4 // as open-drain or push-pull)
MikamiUitOpen 0:09d27b602681 5 //
MikamiUitOpen 0:09d27b602681 6 // 2015/08/22, Copyright (c) 2015 MIKAMI, Naoki
MikamiUitOpen 0:09d27b602681 7 //---------------------------------------------------------------------------------
MikamiUitOpen 0:09d27b602681 8
MikamiUitOpen 0:09d27b602681 9 #include "SetOutputPortType.hpp"
MikamiUitOpen 0:09d27b602681 10 using namespace Mikami;
MikamiUitOpen 0:09d27b602681 11
MikamiUitOpen 0:09d27b602681 12 BusOut bus_(D2, D3, D4, D5, D6, D7, D8);
MikamiUitOpen 0:09d27b602681 13 DigitalIn uButton_(USER_BUTTON);
MikamiUitOpen 0:09d27b602681 14
MikamiUitOpen 0:09d27b602681 15 // ユーザ・ボタン(青のボタン)を押すまで待つ関数
MikamiUitOpen 0:09d27b602681 16 void WaitButton(char str[])
MikamiUitOpen 0:09d27b602681 17 {
MikamiUitOpen 0:09d27b602681 18 printf(str);
MikamiUitOpen 0:09d27b602681 19 printf("\r\nPush blue button");
MikamiUitOpen 0:09d27b602681 20 while (uButton_ == 1) {}
MikamiUitOpen 0:09d27b602681 21 wait(0.5);
MikamiUitOpen 0:09d27b602681 22 }
MikamiUitOpen 0:09d27b602681 23
MikamiUitOpen 0:09d27b602681 24 int main()
MikamiUitOpen 0:09d27b602681 25 {
MikamiUitOpen 0:09d27b602681 26 // MODER I/O ポートを,入力/汎用出力/代替え機能/アナログに設定するレジスタ
MikamiUitOpen 0:09d27b602681 27 // PUPDR I/O ポートを,プルアップ,プルダウン,プルアップ・プルダウンなしに設定するレジスタ
MikamiUitOpen 0:09d27b602681 28 // OTYPER 出力のタイプをプッシュプル/オープンドレインに設定するレジスタ
MikamiUitOpen 0:09d27b602681 29 printf("\r\n\nGPIOB mode Reg.: 0x%08x", GPIOB->MODER);
MikamiUitOpen 0:09d27b602681 30 printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%08x", GPIOB->PUPDR);
MikamiUitOpen 0:09d27b602681 31
MikamiUitOpen 0:09d27b602681 32 bus_ = 0x7F;
MikamiUitOpen 0:09d27b602681 33 SetOpenDrain(D2, D3, D4, D5, D6, D7, D8);
MikamiUitOpen 0:09d27b602681 34 WaitButton("\r\n\nD2 - D8: open drain");
MikamiUitOpen 0:09d27b602681 35 printf("\r\nGPIOB pull-up/pull-down Reg.: 0x%04x", GPIOB->OTYPER);
MikamiUitOpen 0:09d27b602681 36
MikamiUitOpen 0:09d27b602681 37 SetPushPull(D2, D3, D4, D5, D6, D7, D8);
MikamiUitOpen 0:09d27b602681 38 WaitButton("\r\nD2 - D8: push-pull");
MikamiUitOpen 0:09d27b602681 39 SetOpenDrain(D2);
MikamiUitOpen 0:09d27b602681 40 WaitButton("\r\nD2: open drain");
MikamiUitOpen 0:09d27b602681 41
MikamiUitOpen 0:09d27b602681 42 SetOpenDrain(D3, D4);
MikamiUitOpen 0:09d27b602681 43 printf("\r\nD2 - D4: open drain");
MikamiUitOpen 0:09d27b602681 44
MikamiUitOpen 0:09d27b602681 45 while (true);
MikamiUitOpen 0:09d27b602681 46 }