![](/media/cache/group/gazou_0224.jpg.50x50_q85.jpg)
2つのanalogスティックのanalog値をserial通信で送信、LEDをpwm制御するプログラムの受信側。2本入力時は正常,1本のみ入力時不具合(LED点滅)あり。直したら使えるようになります。
Dependencies: mbed
※解決策思いつかず。放置済み。※
main.cpp
- Committer:
- eil4nyqn
- Date:
- 2014-12-21
- Revision:
- 0:4bcbb11cf9b1
File content as of revision 0:4bcbb11cf9b1:
#include "mbed.h" Serial pc(USBTX,USBRX); Serial mc(p13,p14); //PwmOut myled[] = {p21,p22,p23,p24}; PwmOut myled[] = {LED1,LED2,LED3,LED4}; BusOut select(p5,p6,p7,p8); Timer test; Timer test2; int main() { double signal,signal2; uint8_t i = 0,data,data2; int style = 0,style2 = 0; double time = 0,time2 = 0; while(1) { if(mc.readable() == 1){ data = mc.getc(); test.reset(); test.start(); if(data < 64 && data > 2){ signal = data/50.00; i = 0; myled[i] = signal; style = 1; select = style; }else if(data > 64 && data < 128){ signal = (data-64)/50.00; i = 1; myled[i] = signal; style = 2; select = style; }else if(data < 196 && data > 128){ signal = (data-126)/50.00; i = 2; myled[i] = signal; style = 4; select = style; }else if(data > 196 && data < 256){ signal = (data-196)/50.00; i = 3; myled[i] = signal; style = 8; select = style; }else{ myled[0] = 0; myled[1] = 0; myled[2] = 0; myled[3] = 0; } test.stop(); time = test.read(); pc.printf("%u_%f_%f_%u\n",data,signal,time,style); if(mc.readable() == 1){ data2 = mc.getc(); test2.start(); if(data2 < 64 && data2 > 2){ signal2 = data2/50.00; myled[0] = signal2; if(i > 1){ }else if(data2 > 64 && data2 < 128){ signal2 = (data2-64)/50.00; myled[1] = signal2; style2 = 2; style2 +=style; myled[i] = signal; mosw = style2; }else if(data2 < 196 && data2 > 128){ signal2 = (data2-126)/50.00; myled[3] = signal2; style2 = 4; style2 += style; myled[i] = signal; mosw = style2; //test2.start(); }else if(data2 < 256 && data2 > 196){ signal2 = (data2-196)/50.00; myled[3] = signal2; style2 = 4; style2 += style; myled[i] = signal; mosw = style; //test2.start(); }else{ myled[0] = 0; myled[1] = 0; myled[2] = 0; myled[3] = 0; } test2.stop(); time2 = test2.read(); pc.printf("%u_%f_%f_%u\n",data2,signal2,time2,style2); i = 0; }else{ myled[0] = 0; myled[1] = 0; myled[2] = 0; myled[3] = 0; } } }