can のテストプログラム これは動く

Dependencies:   mbed

Fork of RS485113R by albatross

Files at this revision

API Documentation at this revision

Comitter:
taurin
Date:
Sat Jan 23 17:39:26 2016 +0000
Parent:
0:465b3bf421b0
Commit message:
can ?????????; ?????

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 465b3bf421b0 -r 54398a174a10 main.cpp
--- a/main.cpp	Fri Dec 04 12:24:05 2015 +0000
+++ b/main.cpp	Sat Jan 23 17:39:26 2016 +0000
@@ -1,56 +1,24 @@
-//受信側
-//数字を送受信するだけならmbed間でやるときにはそれぞれputc,getcを使えばできるみたいだが、ヘッダで文字を送ろうとかすると上手くいかない,ちなみにパソコンと通信をするなら
-//printfじゃないとむり無理っぽい
-
-
+//can test receiver
 #include "mbed.h"
-#define BUFFER 30
-
-Serial rs485(p9,p10);
-Serial pc(USBTX,USBRX);
-PwmOut servo1(p21);
-PwmOut servo2(p22);
-DigitalOut Receiver(p5);
-
-int data[BUFFER];
-int servo1_data1[5];
-int servo2_data2[5];
-int num1,num2;
-
+ 
+#define RECID 1337
 
-int main(){
-rs485.baud(38400);
-Receiver = 0;
-servo1.period_ms(20);
-servo2.period_ms(20);
-while(1){
-        
-      int available_temp = 0;
-  int i = 0;
-  if((available_temp = rs485.readable()) == 1){
-   // Serial.println(available_temp);
-  wait_us(5);
- for(i = 0;i < 4;i++){
-    data[i] = rs485.getc();
-    //pc.printf("%d\n\r",data[i]);
- }
-    wait_us(1);
-  }
-  for(i = 0;i< 4;i++){
-    if(data[i] == 'A' && data[i + 1] != -1){
-  servo1.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077));
-
-
-      wait_us(1);
-   //  pc.putc(data[i + 1]);
-}
-    if(data[i] == 'B' && data[i+1] != -1){
-       pc.printf("%d\n\r",data[i + 1]);
-               servo2.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077));
-    //servo2.pulsewidth(((float)data[i + 1] / 180.0) * 0.01);
-  wait_us(1);
-//  Serial.println(data[i+1]);
-             }
-        }
-    }    
+Ticker ticker;
+CAN can(p9, p10);
+Serial pc(USBTX,USBRX);
+ CANMessage recmsg;
+ char p=0;
+int main() {
+    printf("RRsdfsmain()\n");
+    while(1) {
+        printf("loop()\n");
+        if(can.read(recmsg)) {
+            for(int i = 0; i < recmsg.len; i++){
+                pc.printf("Message received: %d\n\r", recmsg.data[i]);
+            }
+            can.write(CANMessage(100,&p,1));
+            p++;
+        } 
+        wait(0.2);
+    }
 }
\ No newline at end of file