木楽らぼソースコード
木楽らぼ実験ノートのソースコードを収録してあります。ハードウェアは、http://kirakulabo.blogspot.jp/をご覧ください。
2022年9月14日水曜日
2022年4月2日土曜日
2022年3月19日土曜日
2021年5月16日日曜日
2020年8月10日月曜日
micro:bitと電動消しゴムでバランスロボ
ハードウェアは こちらをご覧ください。
PWM周波数の変更のため、wiring_analog_nRF51.c 内の関数 void analogWrite( uint32_t ulPin, uint32_t ulValue ) の
NRF_TIMER1->PRESCALER = (NRF_TIMER1->PRESCALER & ~TIMER_PRESCALER_PRESCALER_Msk) | ((7 << TIMER_PRESCALER_PRESCALER_Pos) & TIMER_PRESCALER_PRESCALER_Msk);
を
NRF_TIMER1->PRESCALER = (NRF_TIMER1->PRESCALER & ~TIMER_PRESCALER_PRESCALER_Msk) | ((3 << TIMER_PRESCALER_PRESCALER_Pos) & TIMER_PRESCALER_PRESCALER_Msk);
に変更しました。
また、i2cのタイムアウトのために、Wire_nRF51.cpp 内の関数 uint8_t TwoWire::endTransmission(bool stopBit) の
_p_twi->TXD = txBuffer.read_char();
while(!_p_twi->EVENTS_TXDSENT && !_p_twi->EVENTS_ERROR) ;
を
_p_twi->TXD = txBuffer.read_char();
uint32_t usecTimeOut=micros();
while(!_p_twi->EVENTS_TXDSENT && !_p_twi->EVENTS_ERROR) {
if (micros()-usecTimeOut>3000) return 4;
}
に変更しました。
以下ソースコードです。