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.
Diff: main.cpp
- Revision:
- 2:33681dfc2aa5
- Parent:
- 1:fa3a640a55e0
- Child:
- 3:e356b3e7ecfd
--- a/main.cpp Mon Dec 23 15:36:06 2019 +0000
+++ b/main.cpp Tue Dec 24 07:15:01 2019 +0000
@@ -1,30 +1,35 @@
#include "mbed.h"
#include "math.h"
-
-
+AnalogIn fsr(PC_0);
DigitalInOut name(PC_7);//EN_IN(HIGHでICS機器に送信するモード、LOWでICS機器から受信するモードにするピン)と繋いでいる
Serial master(PA_9, PA_10);//シリアル通信を担当するピン
+Serial pc(USBTX,USBRX);
-Serial pc(USBTX,USBRX);
bool setpos(int deg,int id);
void getID();
+void getpos(int id);
-//int getpos(int id);
+
int txlen=3;
int rxlen=3;
int _id;
int main() {
pc.printf("hello\r\n");
- master.baud(1250000);//クロックレートの設定
+ //master.baud(1250000);//クロックレートの設定
+ master.baud(112500);
master.format(8, Serial::Even, 1);//通信方式の設定
name.output();//p8を出力モードに
int deg=0;
char degpart[3];
int id;
-
+ char a;
while(1){
+ pc.printf("choose1 or 2 or3\r\n");
+ a=pc.getc();
+ switch(a){
+ case '1':
pc.printf("degree\r\n");
for(int i=0;i<3;i++){
degpart[i]=pc.getc()-48;
@@ -40,7 +45,35 @@
pc.printf("%d\r\n",id);
setpos(deg,id);
//getID();
- }
+ wait(1.0);
+ getpos(id);
+ break;
+
+
+ case '2':
+ double i;
+ i=fsr.read();
+
+ deg=i*270-135;
+ pc.printf("%d\r\n",deg);
+ setpos(deg,5);
+ break;
+
+ case '3':
+ pc.printf("id\r\n");
+ id=pc.getc()-48;
+ //id+=48;
+ pc.printf("%d\r\n",id);
+ getpos(id);
+ break;
+
+ default:
+ break;
+ }
+
+
+ }
+
}
bool setpos(int deg,int id){
@@ -61,99 +94,70 @@
for(int i=0;i<txlen;i++){
master.putc(txdata[i]);
}
- wait(0.00002);
+ //wait(0.00002);
+ wait(0.0002);
- name=0;
-
-
+ name=0;
for(int i=0;i<rxlen;i++){
rxdata[i]=master.getc();
- //wait(0.05);
- //pc.printf("%d\r\n",rxdata[i]);
}
- //wait(0.01);
- //name=1;
-
- //if(i==txlen-1){
- //name=0;
-
-
- /*for(int i=0;i<rxlen;i++){
- //pc.printf("h\r\n");
-
- //pc.printf("hello\r\n");
- rxdata[i]=master.getc();
- }*/
-
- //pc.printf("OK\r\n");
-
- //wait(0.05);
- //pc.printf("hello\r\n");
-
-
- //pc.printf("hello\r\n");
- int degnow;
- degnow=((rxdata[1] << 7) & 0x3F80) + (rxdata[2] & 0x007F);
+ int degnow;
+ degnow=((rxdata[1] << 7) & 0x3F80) + (rxdata[2] & 0x007F);
degnow=(degnow-7500)/29.6;
- //pc.printf("%d\r\n",degnow);
+
pc.printf("%d\r\n",rxdata[0]);
pc.printf("%d\r\n",rxdata[1]);
pc.printf("%d\r\n",rxdata[2]);
pc.printf("角度%d\r\n",degnow);
+
}
-/*int getpos(int id){
+void getpos(int id){
name=1;
unsigned char txdata[txlen-1];
- unsigned char rxdata[rxlen];
+ unsigned char rxdata[rxlen+1];
int degnow;
txdata[0]=0xA0+id;
txdata[1]=0x05;
- pc.printf("done\r\n");
+
for(int i=0;i<txlen-1;i++){
master.putc(txdata[i]);
}
+ wait(0.0002);
name=0;
- wait(0.5);
- if(master.readable()){
- pc.printf("OK\r\n");
- }
- for(int i=0;i<rxlen;i++){
- if(master.readable()){
+
+ for(int i=0;i<rxlen+1;i++){
rxdata[i]=master.getc();
- pc.printf("%c",rxdata[i]);
- }else{
- pc.printf("failed\r\n");
- }
}
-
+
+ pc.printf("%d\r\n",rxdata[0]);
+ degnow=((rxdata[2] << 7) & 0x3F80) + (rxdata[3] & 0x007F);
+ degnow=(degnow-7500)/29.6;
+ pc.printf("%d\r\n",degnow);
-
- pc.printf("%d",rxdata[0]);
- degnow=((rxdata[2] << 7) & 0x3F80) + (rxdata[3] & 0x007F);
- //degnow=(degnow-7500)*1000/296;
- pc.printf("%d",degnow);
- return degnow;
- } */
+ }
void getID()
{
int id;
name=1;
master.putc(0xFF);
+ wait(0.00001);
master.putc(0x0);
- master.putc(0x0);
+ wait(0.00001);
master.putc(0x0);
- wait(0.01);
+ wait(0.00001);
+ master.putc(0x0);
+ wait(0.00002);
name=0;
- /*for(int i=0;i<5;i++)
+ for(int i=0;i<5;i++)
{
id = (master.getc() & 0x1f);
- }*/
- id=master.getc();
+ }
+ //id=master.getc();
printf("%d\r\n",id);
wait_ms(500);