hiroya taura
/
CAN_R
can のテストプログラム これは動く
Fork of RS485113R by
main.cpp@0:465b3bf421b0, 2015-12-04 (annotated)
- Committer:
- YusukeWakuta
- Date:
- Fri Dec 04 12:24:05 2015 +0000
- Revision:
- 0:465b3bf421b0
- Child:
- 1:54398a174a10
mbed?????????????????????????;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YusukeWakuta | 0:465b3bf421b0 | 1 | //受信側 |
YusukeWakuta | 0:465b3bf421b0 | 2 | //数字を送受信するだけならmbed間でやるときにはそれぞれputc,getcを使えばできるみたいだが、ヘッダで文字を送ろうとかすると上手くいかない,ちなみにパソコンと通信をするなら |
YusukeWakuta | 0:465b3bf421b0 | 3 | //printfじゃないとむり無理っぽい |
YusukeWakuta | 0:465b3bf421b0 | 4 | |
YusukeWakuta | 0:465b3bf421b0 | 5 | |
YusukeWakuta | 0:465b3bf421b0 | 6 | #include "mbed.h" |
YusukeWakuta | 0:465b3bf421b0 | 7 | #define BUFFER 30 |
YusukeWakuta | 0:465b3bf421b0 | 8 | |
YusukeWakuta | 0:465b3bf421b0 | 9 | Serial rs485(p9,p10); |
YusukeWakuta | 0:465b3bf421b0 | 10 | Serial pc(USBTX,USBRX); |
YusukeWakuta | 0:465b3bf421b0 | 11 | PwmOut servo1(p21); |
YusukeWakuta | 0:465b3bf421b0 | 12 | PwmOut servo2(p22); |
YusukeWakuta | 0:465b3bf421b0 | 13 | DigitalOut Receiver(p5); |
YusukeWakuta | 0:465b3bf421b0 | 14 | |
YusukeWakuta | 0:465b3bf421b0 | 15 | int data[BUFFER]; |
YusukeWakuta | 0:465b3bf421b0 | 16 | int servo1_data1[5]; |
YusukeWakuta | 0:465b3bf421b0 | 17 | int servo2_data2[5]; |
YusukeWakuta | 0:465b3bf421b0 | 18 | int num1,num2; |
YusukeWakuta | 0:465b3bf421b0 | 19 | |
YusukeWakuta | 0:465b3bf421b0 | 20 | |
YusukeWakuta | 0:465b3bf421b0 | 21 | int main(){ |
YusukeWakuta | 0:465b3bf421b0 | 22 | rs485.baud(38400); |
YusukeWakuta | 0:465b3bf421b0 | 23 | Receiver = 0; |
YusukeWakuta | 0:465b3bf421b0 | 24 | servo1.period_ms(20); |
YusukeWakuta | 0:465b3bf421b0 | 25 | servo2.period_ms(20); |
YusukeWakuta | 0:465b3bf421b0 | 26 | while(1){ |
YusukeWakuta | 0:465b3bf421b0 | 27 | |
YusukeWakuta | 0:465b3bf421b0 | 28 | int available_temp = 0; |
YusukeWakuta | 0:465b3bf421b0 | 29 | int i = 0; |
YusukeWakuta | 0:465b3bf421b0 | 30 | if((available_temp = rs485.readable()) == 1){ |
YusukeWakuta | 0:465b3bf421b0 | 31 | // Serial.println(available_temp); |
YusukeWakuta | 0:465b3bf421b0 | 32 | wait_us(5); |
YusukeWakuta | 0:465b3bf421b0 | 33 | for(i = 0;i < 4;i++){ |
YusukeWakuta | 0:465b3bf421b0 | 34 | data[i] = rs485.getc(); |
YusukeWakuta | 0:465b3bf421b0 | 35 | //pc.printf("%d\n\r",data[i]); |
YusukeWakuta | 0:465b3bf421b0 | 36 | } |
YusukeWakuta | 0:465b3bf421b0 | 37 | wait_us(1); |
YusukeWakuta | 0:465b3bf421b0 | 38 | } |
YusukeWakuta | 0:465b3bf421b0 | 39 | for(i = 0;i< 4;i++){ |
YusukeWakuta | 0:465b3bf421b0 | 40 | if(data[i] == 'A' && data[i + 1] != -1){ |
YusukeWakuta | 0:465b3bf421b0 | 41 | servo1.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077)); |
YusukeWakuta | 0:465b3bf421b0 | 42 | |
YusukeWakuta | 0:465b3bf421b0 | 43 | |
YusukeWakuta | 0:465b3bf421b0 | 44 | wait_us(1); |
YusukeWakuta | 0:465b3bf421b0 | 45 | // pc.putc(data[i + 1]); |
YusukeWakuta | 0:465b3bf421b0 | 46 | } |
YusukeWakuta | 0:465b3bf421b0 | 47 | if(data[i] == 'B' && data[i+1] != -1){ |
YusukeWakuta | 0:465b3bf421b0 | 48 | pc.printf("%d\n\r",data[i + 1]); |
YusukeWakuta | 0:465b3bf421b0 | 49 | servo2.pulsewidth(0.00093 + ((float)data[i + 1] / 180.0) * (0.00235 - 0.00077)); |
YusukeWakuta | 0:465b3bf421b0 | 50 | //servo2.pulsewidth(((float)data[i + 1] / 180.0) * 0.01); |
YusukeWakuta | 0:465b3bf421b0 | 51 | wait_us(1); |
YusukeWakuta | 0:465b3bf421b0 | 52 | // Serial.println(data[i+1]); |
YusukeWakuta | 0:465b3bf421b0 | 53 | } |
YusukeWakuta | 0:465b3bf421b0 | 54 | } |
YusukeWakuta | 0:465b3bf421b0 | 55 | } |
YusukeWakuta | 0:465b3bf421b0 | 56 | } |