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

Dependencies:   mbed UIT_SetOutputPortType

Committer:
MikamiUitOpen
Date:
Fri Sep 04 12:02:07 2015 +0000
Revision:
2:966a8ad956d3
Parent:
1:5bf39be14d61
Child:
3:f9dc19059c3b
3

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 2:966a8ad956d3 6 // 2015/09/04, 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 1:5bf39be14d61 34 printf("\r\n\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER);
MikamiUitOpen 1:5bf39be14d61 35 printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER);
MikamiUitOpen 1:5bf39be14d61 36 WaitButton("\r\nD2 - D8: open drain\r\n");
MikamiUitOpen 0:09d27b602681 37
MikamiUitOpen 0:09d27b602681 38 SetPushPull(D2, D3, D4, D5, D6, D7, D8);
MikamiUitOpen 1:5bf39be14d61 39 printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER);
MikamiUitOpen 1:5bf39be14d61 40 printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER);
MikamiUitOpen 1:5bf39be14d61 41 WaitButton("\r\nD2 - D8: push-pull\r\n");
MikamiUitOpen 1:5bf39be14d61 42
MikamiUitOpen 0:09d27b602681 43 SetOpenDrain(D2);
MikamiUitOpen 1:5bf39be14d61 44 printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER);
MikamiUitOpen 1:5bf39be14d61 45 printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER);
MikamiUitOpen 1:5bf39be14d61 46 WaitButton("\r\nD2: open drain\r\n");
MikamiUitOpen 0:09d27b602681 47
MikamiUitOpen 0:09d27b602681 48 SetOpenDrain(D3, D4);
MikamiUitOpen 1:5bf39be14d61 49 printf("\r\nGPIOB output type Reg.: 0x%04x", GPIOB->OTYPER);
MikamiUitOpen 1:5bf39be14d61 50 printf("\r\nGPIOA output type Reg.: 0x%04x", GPIOA->OTYPER);
MikamiUitOpen 1:5bf39be14d61 51 printf("\r\nD2 - D4: open drain\r\n");
MikamiUitOpen 0:09d27b602681 52
MikamiUitOpen 0:09d27b602681 53 while (true);
MikamiUitOpen 2:966a8ad956d3 54 }