![](/media/cache/group/1348113303_goodyear_blimp_12_450op.jpg.50x50_q85.jpg)
getestet und funktioniert per pc
main.cpp
- Committer:
- RaphaelKreuzer
- Date:
- 2015-10-06
- Revision:
- 0:aadc51983820
- Child:
- 1:353c3b1ad238
File content as of revision 0:aadc51983820:
#include "mbed.h" #include "Serial_HL.h" // Testprogramm um zu sehen ob die RGB-Led richtig verlötet // ist und ob sie sich auch dimmen lässt SerialBLK pc(p13,p14); SvProtocol ua0(&pc); DigitalOut led1(LED1); PwmOut servo1(p21),servo2(p22),servo3(p23); int16_t stickVal1,stickVal2,stickVal3; void CommandHandler(); int main() { servo1.period_ms(20); servo2.period_ms(20); servo3.period_ms(20); pc.baud(9600); ua0.SvMessage("ServoTest"); Timer stw; stw.start(); while(1) { CommandHandler(); if((stw.read_ms()>100)) { stw.reset(); if(ua0.acqON) { ua0.WriteSvI16(1, stickVal1); ua0.WriteSvI16(2, stickVal2); ua0.WriteSvI16(3, stickVal3); } } } return 1; } void CommandHandler() { uint8_t cmd; // Fragen ob überhaupt etwas im RX-Reg steht if( !pc.IsDataAvail() ) return; // wenn etwas im RX-Reg steht // Kommando lesen cmd = ua0.GetCommand(); if( cmd==2 ) { // cmd2 hat 2 int16 Parameter led1 = 1; stickVal1 = ua0.ReadI16(); servo1.pulsewidth_us(1000+stickVal1); } if( cmd==3 ) { // cmd2 hat 2 int16 Parameter stickVal2 = ua0.ReadI16(); servo2.pulsewidth_us(1000+stickVal2); } if( cmd==4 ) { // cmd2 hat 2 int16 Parameter stickVal3 = ua0.ReadI16(); servo3.pulsewidth_us(1000+stickVal3); } }