Diplomarbeit_blimp
/
Matura_Bluethooth_Ansterung_Motoren
getestet und funktioniert per pc
main.cpp@0:aadc51983820, 2015-10-06 (annotated)
- Committer:
- RaphaelKreuzer
- Date:
- Tue Oct 06 17:18:01 2015 +0000
- Revision:
- 0:aadc51983820
- Child:
- 1:353c3b1ad238
Blue_Ansteuerung_Motoren
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RaphaelKreuzer | 0:aadc51983820 | 1 | |
RaphaelKreuzer | 0:aadc51983820 | 2 | #include "mbed.h" |
RaphaelKreuzer | 0:aadc51983820 | 3 | #include "Serial_HL.h" |
RaphaelKreuzer | 0:aadc51983820 | 4 | |
RaphaelKreuzer | 0:aadc51983820 | 5 | // Testprogramm um zu sehen ob die RGB-Led richtig verlötet |
RaphaelKreuzer | 0:aadc51983820 | 6 | // ist und ob sie sich auch dimmen lässt |
RaphaelKreuzer | 0:aadc51983820 | 7 | |
RaphaelKreuzer | 0:aadc51983820 | 8 | SerialBLK pc(p13,p14); |
RaphaelKreuzer | 0:aadc51983820 | 9 | SvProtocol ua0(&pc); |
RaphaelKreuzer | 0:aadc51983820 | 10 | DigitalOut led1(LED1); |
RaphaelKreuzer | 0:aadc51983820 | 11 | |
RaphaelKreuzer | 0:aadc51983820 | 12 | PwmOut servo1(p21),servo2(p22),servo3(p23); |
RaphaelKreuzer | 0:aadc51983820 | 13 | int16_t stickVal1,stickVal2,stickVal3; |
RaphaelKreuzer | 0:aadc51983820 | 14 | |
RaphaelKreuzer | 0:aadc51983820 | 15 | void CommandHandler(); |
RaphaelKreuzer | 0:aadc51983820 | 16 | |
RaphaelKreuzer | 0:aadc51983820 | 17 | int main() |
RaphaelKreuzer | 0:aadc51983820 | 18 | { |
RaphaelKreuzer | 0:aadc51983820 | 19 | servo1.period_ms(20); |
RaphaelKreuzer | 0:aadc51983820 | 20 | servo2.period_ms(20); |
RaphaelKreuzer | 0:aadc51983820 | 21 | servo3.period_ms(20); |
RaphaelKreuzer | 0:aadc51983820 | 22 | |
RaphaelKreuzer | 0:aadc51983820 | 23 | pc.baud(9600); |
RaphaelKreuzer | 0:aadc51983820 | 24 | ua0.SvMessage("ServoTest"); |
RaphaelKreuzer | 0:aadc51983820 | 25 | |
RaphaelKreuzer | 0:aadc51983820 | 26 | Timer stw; stw.start(); |
RaphaelKreuzer | 0:aadc51983820 | 27 | while(1) |
RaphaelKreuzer | 0:aadc51983820 | 28 | { |
RaphaelKreuzer | 0:aadc51983820 | 29 | CommandHandler(); |
RaphaelKreuzer | 0:aadc51983820 | 30 | if((stw.read_ms()>100)) |
RaphaelKreuzer | 0:aadc51983820 | 31 | { |
RaphaelKreuzer | 0:aadc51983820 | 32 | stw.reset(); |
RaphaelKreuzer | 0:aadc51983820 | 33 | if(ua0.acqON) |
RaphaelKreuzer | 0:aadc51983820 | 34 | { |
RaphaelKreuzer | 0:aadc51983820 | 35 | ua0.WriteSvI16(1, stickVal1); |
RaphaelKreuzer | 0:aadc51983820 | 36 | ua0.WriteSvI16(2, stickVal2); |
RaphaelKreuzer | 0:aadc51983820 | 37 | ua0.WriteSvI16(3, stickVal3); |
RaphaelKreuzer | 0:aadc51983820 | 38 | } |
RaphaelKreuzer | 0:aadc51983820 | 39 | } |
RaphaelKreuzer | 0:aadc51983820 | 40 | } |
RaphaelKreuzer | 0:aadc51983820 | 41 | |
RaphaelKreuzer | 0:aadc51983820 | 42 | return 1; |
RaphaelKreuzer | 0:aadc51983820 | 43 | } |
RaphaelKreuzer | 0:aadc51983820 | 44 | |
RaphaelKreuzer | 0:aadc51983820 | 45 | |
RaphaelKreuzer | 0:aadc51983820 | 46 | void CommandHandler() |
RaphaelKreuzer | 0:aadc51983820 | 47 | { |
RaphaelKreuzer | 0:aadc51983820 | 48 | uint8_t cmd; |
RaphaelKreuzer | 0:aadc51983820 | 49 | |
RaphaelKreuzer | 0:aadc51983820 | 50 | |
RaphaelKreuzer | 0:aadc51983820 | 51 | // Fragen ob überhaupt etwas im RX-Reg steht |
RaphaelKreuzer | 0:aadc51983820 | 52 | if( !pc.IsDataAvail() ) |
RaphaelKreuzer | 0:aadc51983820 | 53 | return; |
RaphaelKreuzer | 0:aadc51983820 | 54 | |
RaphaelKreuzer | 0:aadc51983820 | 55 | // wenn etwas im RX-Reg steht |
RaphaelKreuzer | 0:aadc51983820 | 56 | // Kommando lesen |
RaphaelKreuzer | 0:aadc51983820 | 57 | cmd = ua0.GetCommand(); |
RaphaelKreuzer | 0:aadc51983820 | 58 | |
RaphaelKreuzer | 0:aadc51983820 | 59 | if( cmd==2 ) { |
RaphaelKreuzer | 0:aadc51983820 | 60 | // cmd2 hat 2 int16 Parameter |
RaphaelKreuzer | 0:aadc51983820 | 61 | |
RaphaelKreuzer | 0:aadc51983820 | 62 | led1 = 1; |
RaphaelKreuzer | 0:aadc51983820 | 63 | stickVal1 = ua0.ReadI16(); |
RaphaelKreuzer | 0:aadc51983820 | 64 | servo1.pulsewidth_us(1000+stickVal1); |
RaphaelKreuzer | 0:aadc51983820 | 65 | } |
RaphaelKreuzer | 0:aadc51983820 | 66 | if( cmd==3 ) { |
RaphaelKreuzer | 0:aadc51983820 | 67 | // cmd2 hat 2 int16 Parameter |
RaphaelKreuzer | 0:aadc51983820 | 68 | stickVal2 = ua0.ReadI16(); |
RaphaelKreuzer | 0:aadc51983820 | 69 | servo2.pulsewidth_us(1000+stickVal2); |
RaphaelKreuzer | 0:aadc51983820 | 70 | } |
RaphaelKreuzer | 0:aadc51983820 | 71 | if( cmd==4 ) { |
RaphaelKreuzer | 0:aadc51983820 | 72 | // cmd2 hat 2 int16 Parameter |
RaphaelKreuzer | 0:aadc51983820 | 73 | stickVal3 = ua0.ReadI16(); |
RaphaelKreuzer | 0:aadc51983820 | 74 | servo3.pulsewidth_us(1000+stickVal3); |
RaphaelKreuzer | 0:aadc51983820 | 75 | } |
RaphaelKreuzer | 0:aadc51983820 | 76 | } |
RaphaelKreuzer | 0:aadc51983820 | 77 | |
RaphaelKreuzer | 0:aadc51983820 | 78 | |
RaphaelKreuzer | 0:aadc51983820 | 79 |