pp.26-31
今度は出力回路をオープンドレインにする。テキストと違って赤色LEDしか使っていないのでプッシュプルのときと区別がつかない。
#include "mbed.h" #define BLINKING_RATE 100ms int main(){ BusOut leds(PA_10, PB_3, PB_5, PB_4, PB_10, PA_8, PA_9, PC_7); GPIOA->OTYPER |= 1 <<STM_PIN(PA_10); GPIOA->OTYPER |= 1 <<STM_PIN(PA_8); GPIOA->OTYPER |= 1 <<STM_PIN(PA_9); GPIOB->OTYPER |= 1 <<STM_PIN(PB_3); GPIOB->OTYPER |= 1 <<STM_PIN(PB_5); GPIOB->OTYPER |= 1 <<STM_PIN(PB_4); GPIOB->OTYPER |= 1 <<STM_PIN(PB_10); GPIOC->OTYPER |= 1 <<STM_PIN(PC_7); while(1) { for(int i=0; i<8; i++){ leds = ~(1 << i); ThisThread::sleep_for(BLINKING_RATE); } for(int i=6; i>=1; i--){ leds = ~(1 << i); ThisThread::sleep_for(BLINKING_RATE); } } return 0; }