Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 3:28c77df7c0b6, committed 2020-01-06
- Comitter:
- TanakaRobo
- Date:
- Mon Jan 06 11:06:26 2020 +0000
- Parent:
- 2:141358d84ff4
- Child:
- 4:39ef4d91dc34
- Commit message:
- send not available
Changed in this revision
--- a/gy521.cpp Fri Jan 03 02:37:48 2020 +0000
+++ b/gy521.cpp Mon Jan 06 11:06:26 2020 +0000
@@ -68,7 +68,7 @@
flag_ = false;
}
-void GY521::updata(){
+void GY521::update(){
if(flag_){
return;
}
--- a/gy521.hpp Fri Jan 03 02:37:48 2020 +0000
+++ b/gy521.hpp Mon Jan 06 11:06:26 2020 +0000
@@ -8,6 +8,9 @@
*example
*L432KC : SDA = PB_7 , SCL = PB_6
*F446RE : SDA = PB_3 , SCL = PB_10
+ *ループ内で毎回
+ *<obj>.update()
+ *を呼び出してください。
*/
//I2C i2c(SDA,SCL);
//GY521 gyro(i2c);
@@ -17,7 +20,7 @@
GY521(I2C &i2c,int bit = 2,int calibration = 1000,double user_reg = 1.0);
double yaw;
//double temp;
- void updata();
+ void update();
void reset(int user);
void start(double start = 0){
yaw = start;
--- a/rotary_inc.cpp Fri Jan 03 02:37:48 2020 +0000
+++ b/rotary_inc.cpp Mon Jan 06 11:06:26 2020 +0000
@@ -1,28 +1,28 @@
#include "rotary_inc.hpp"
-RotaryInc::RotaryInc(PinName pinA, PinName pinB,int mode):mode_(mode){
+RotaryInc::RotaryInc(PinName pin_a, PinName pin_b,int mode):mode_(mode){
measur_ = false;
- init(pinA,pinB);
+ init(pin_a,pin_b);
}
-RotaryInc::RotaryInc(PinName pinA,PinName pinB,double circumference,int resolution,int mode)
+RotaryInc::RotaryInc(PinName pin_a,PinName pin_b,double circumference,int resolution,int mode)
:mode_(mode),resolution_(resolution),circumference_(circumference){
measur_ = true;
- init(pinA,pinB);
+ init(pin_a,pin_b);
}
void RotaryInc::init(PinName pinA,PinName pinB){
reset();
- A_ = new InterruptIn(pinA,PullUp);
- B_ = new InterruptIn(pinB,PullUp);
- A_->rise(callback(this,&RotaryInc::riseA));
+ pin_a_ = new InterruptIn(pinA,PullUp);
+ pin_b_ = new InterruptIn(pinB,PullUp);
+ pin_a_->rise(callback(this,&RotaryInc::riseA));
if(mode_ == 2){
- A_->fall(callback(this,&RotaryInc::fallA));
+ pin_a_->fall(callback(this,&RotaryInc::fallA));
}else if(mode_ == 4){
- A_->fall(callback(this,&RotaryInc::fallA));
- B_->rise(callback(this,&RotaryInc::riseB));
- B_->fall(callback(this,&RotaryInc::fallB));
+ pin_a_->fall(callback(this,&RotaryInc::fallA));
+ pin_b_->rise(callback(this,&RotaryInc::riseB));
+ pin_b_->fall(callback(this,&RotaryInc::fallB));
}else{
mode_ = 1;
}
@@ -76,28 +76,28 @@
}
void RotaryInc::riseA(){
- B_->read() ? pulse_-- : pulse_++;
+ pin_b_->read() ? pulse_-- : pulse_++;
if(measur_){
calcu();
}
}
void RotaryInc::fallA(){
- B_->read() ? pulse_++ : pulse_--;
+ pin_b_->read() ? pulse_++ : pulse_--;
if(measur_){
calcu();
}
}
void RotaryInc::riseB(){
- A_->read() ? pulse_++ : pulse_--;
+ pin_a_->read() ? pulse_++ : pulse_--;
if(measur_){
calcu();
}
}
void RotaryInc::fallB(){
- A_->read() ? pulse_-- : pulse_++;
+ pin_a_->read() ? pulse_-- : pulse_++;
if(measur_){
calcu();
}
@@ -132,8 +132,8 @@
}
RotaryInc::~RotaryInc(){
- A_->disable_irq();
- B_->disable_irq();
- delete A_;
- delete B_;
+ pin_a_->disable_irq();
+ pin_b_->disable_irq();
+ delete pin_a_;
+ delete pin_b_;
}
\ No newline at end of file
--- a/rotary_inc.hpp Fri Jan 03 02:37:48 2020 +0000
+++ b/rotary_inc.hpp Mon Jan 06 11:06:26 2020 +0000
@@ -14,15 +14,15 @@
class RotaryInc{
public:
- RotaryInc(PinName userA, PinName userB,double circumference,int resolution,int mode = 0);//速度計測有効
- RotaryInc(PinName userA, PinName userB,int mode = 0);//速度計測無効
+ RotaryInc(PinName user_a, PinName user_b,double circumference,int resolution,int mode = 0);//速度計測有効
+ RotaryInc(PinName user_a, PinName user_b,int mode = 0);//速度計測無効
~RotaryInc();
long long get();
double getSpeed();
void reset();
int diff();
private:
- InterruptIn *A_,*B_;
+ InterruptIn *pin_a_,*pin_b_;
Timer timer_;
long long pulse_;
long long last_[20];
--- a/scrp_slave.cpp Fri Jan 03 02:37:48 2020 +0000
+++ b/scrp_slave.cpp Mon Jan 06 11:06:26 2020 +0000
@@ -16,8 +16,7 @@
ScrpSlave::ScrpSlave(PinName TX1,PinName RX1,PinName TX2,PinName RX2,uint32_t addr):address_(addr){
mode_ = 2;
- serial_[1] = new Serial(TX2,RX2);
- serial_[1]->baud(115200);
+ serial_[1] = new Serial(TX2,RX2,115200);
serial_[1]->attach(callback(this,&ScrpSlave::port2),Serial::RxIrq);
init(TX1,RX1);
}
@@ -25,8 +24,7 @@
ScrpSlave::ScrpSlave(PinName TX1,PinName RX1,PinName REDE1,PinName TX2,PinName RX2,uint32_t addr):address_(addr){
mode_ = 3;
rede_ = new DigitalOut(REDE1,0);
- serial_[1] = new Serial(TX2,RX2);
- serial_[1]->baud(115200);
+ serial_[1] = new Serial(TX2,RX2,115200);
serial_[1]->attach(callback(this,&ScrpSlave::port2),Serial::RxIrq);
init(TX1,RX1);
}
@@ -38,8 +36,7 @@
stx_flag_[i] = false;
id_ok_[i] = false;
}
- serial_[0] = new Serial(TX,RX);
- serial_[0]->baud(115200);
+ serial_[0] = new Serial(TX,RX,115200);
serial_[0]->attach(callback(this,&ScrpSlave::port1),Serial::RxIrq);
flash_ = new FlashIAP;
if(flash_->init()==0){
@@ -104,7 +101,7 @@
for(int i = 0;i < 8;i++){
serial_[port]->putc(data[i]);
while(!serial_[port]->writeable());
- }
+ }
if(mode_%2 == 1 && port == 0){
rede_->write(0);
}
--- a/scrp_slave.hpp Fri Jan 03 02:37:48 2020 +0000
+++ b/scrp_slave.hpp Mon Jan 06 11:06:26 2020 +0000
@@ -12,8 +12,13 @@
*example not usb port
*L432KC : TX = PA_9 , RX = PA_10 , REDE = PA_12 , addr = 0x0803e000
*F446RE : TX = PC_12 , RX = PD_2 , RDDE = PH_1 , addr = 0x0807ffff
+ *<obj>.addCMD(int cmd, bool (*proc)(int rx_data, int& tx_data))
+ *でcmdで指定したコマンドを受信したときに呼び出される
+ *bool型で引数が(int rx_data, int& tx_data)の関数を指定する。
*/
//ScrpSlave slave(SERIAL_TX,SERIAL_RX);
+//ScrpSlave slave(PC_12,PD_2 ,PH_1 ,SERIAL_TX,SERIAL_RX,0x0807ffff);
+//ScrpSlave slave(PA_9 ,PA_10,PA_12,SERIAL_TX,SERIAL_RX,0x0803e000);
inline int constrain(int x,int a,int b){
return (x < a ? a : x > b ? b : x);