hiroya taura
/
CAN_R
can のテストプログラム これは動く
Fork of RS485113R by
Revision 1:54398a174a10, committed 2016-01-23
- 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