MDテスト用プログラム

Dependencies:   FastPWM GMD_template_lib mbed

Fork of NewMD2 by tarou yamada

Committer:
inst
Date:
Sat Jul 02 06:11:50 2016 +0000
Revision:
1:29e84d1e7bcc
Parent:
0:690d8ed9ee20
Child:
4:894559ccce05
template?????duty???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
inst 0:690d8ed9ee20 1 #include "mbed.h"
inst 0:690d8ed9ee20 2 #include "GMD.hpp"
inst 0:690d8ed9ee20 3
inst 0:690d8ed9ee20 4 char read_address() {
inst 0:690d8ed9ee20 5 const size_t din_num = 4;
inst 0:690d8ed9ee20 6 DigitalIn din[] = {
inst 0:690d8ed9ee20 7 DigitalIn(dp26),
inst 0:690d8ed9ee20 8 DigitalIn(dp25),
inst 0:690d8ed9ee20 9 DigitalIn(dp18),
inst 0:690d8ed9ee20 10 DigitalIn(dp17)
inst 0:690d8ed9ee20 11 };
inst 0:690d8ed9ee20 12
inst 0:690d8ed9ee20 13 char address = 0;
inst 0:690d8ed9ee20 14 for (size_t i = 0; i < din_num; ++i) {
inst 0:690d8ed9ee20 15 address |= din[i].read() << (i + 2);
inst 0:690d8ed9ee20 16 }
inst 0:690d8ed9ee20 17 return address;
inst 0:690d8ed9ee20 18 }
inst 0:690d8ed9ee20 19
inst 0:690d8ed9ee20 20 int main(){
inst 0:690d8ed9ee20 21 I2CSlave i2c(dp5, dp27);
inst 0:690d8ed9ee20 22 i2c.address(read_address());
inst 1:29e84d1e7bcc 23 basic_motor_driver md(dp1, dp2, dp9);
inst 0:690d8ed9ee20 24
inst 0:690d8ed9ee20 25 while (true){
inst 0:690d8ed9ee20 26 char buf;
inst 0:690d8ed9ee20 27 switch (i2c.receive()){
inst 0:690d8ed9ee20 28 case I2CSlave::ReadAddressed:
inst 0:690d8ed9ee20 29 break;
inst 0:690d8ed9ee20 30
inst 0:690d8ed9ee20 31 case I2CSlave::WriteGeneral:
inst 0:690d8ed9ee20 32 break;
inst 0:690d8ed9ee20 33
inst 0:690d8ed9ee20 34 case I2CSlave::WriteAddressed:
inst 0:690d8ed9ee20 35 i2c.read(&buf, 1);
inst 0:690d8ed9ee20 36
inst 1:29e84d1e7bcc 37 float p = (buf & 0x80) ? -1.0f : 1.0f;
inst 0:690d8ed9ee20 38 p *= (buf & 0x7F);
inst 0:690d8ed9ee20 39 p *= 1.0f / 0x7F;
inst 0:690d8ed9ee20 40
inst 0:690d8ed9ee20 41 md.set(p);
inst 0:690d8ed9ee20 42 break;
inst 0:690d8ed9ee20 43
inst 0:690d8ed9ee20 44 case I2CSlave::NoData:
inst 0:690d8ed9ee20 45 break;
inst 0:690d8ed9ee20 46 }
inst 0:690d8ed9ee20 47 }
inst 0:690d8ed9ee20 48 }