Dependencies:   mbed

Committer:
Wizo
Date:
Thu Nov 15 18:00:04 2018 +0000
Revision:
0:a17cdd8e23ac
Labor_RGB1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wizo 0:a17cdd8e23ac 1 #include "mbed.h"
Wizo 0:a17cdd8e23ac 2 #include "Serial_HL.h"
Wizo 0:a17cdd8e23ac 3
Wizo 0:a17cdd8e23ac 4 SerialBLK pc(USBTX, USBRX);
Wizo 0:a17cdd8e23ac 5 SvProtocol ua0(&pc);
Wizo 0:a17cdd8e23ac 6
Wizo 0:a17cdd8e23ac 7 // V2.0
Wizo 0:a17cdd8e23ac 8
Wizo 0:a17cdd8e23ac 9 BusOut leds(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1);
Wizo 0:a17cdd8e23ac 10
Wizo 0:a17cdd8e23ac 11 PwmOut LR(p23);
Wizo 0:a17cdd8e23ac 12 PwmOut LG(p24);
Wizo 0:a17cdd8e23ac 13 PwmOut LB(p25);
Wizo 0:a17cdd8e23ac 14
Wizo 0:a17cdd8e23ac 15
Wizo 0:a17cdd8e23ac 16 void CommandHandler();
Wizo 0:a17cdd8e23ac 17
Wizo 0:a17cdd8e23ac 18 int main(void)
Wizo 0:a17cdd8e23ac 19 {
Wizo 0:a17cdd8e23ac 20 pc.format(8,SerialBLK::None,1);
Wizo 0:a17cdd8e23ac 21 pc.baud(115200);
Wizo 0:a17cdd8e23ac 22 leds = 9;
Wizo 0:a17cdd8e23ac 23
Wizo 0:a17cdd8e23ac 24
Wizo 0:a17cdd8e23ac 25 // PWM-Periode = 1ms = 1kHz
Wizo 0:a17cdd8e23ac 26 LR.period_ms (1); LG.period_ms (1); LB.period_ms (1);
Wizo 0:a17cdd8e23ac 27
Wizo 0:a17cdd8e23ac 28 // LR = 0.1; 10% Pulsweite LR=0.9; 90% Pulsweite
Wizo 0:a17cdd8e23ac 29
Wizo 0:a17cdd8e23ac 30 LR = (1-0.1); // 10% für invertierte Logik
Wizo 0:a17cdd8e23ac 31 LG = (1-0.1); LB = (1-0.1);
Wizo 0:a17cdd8e23ac 32
Wizo 0:a17cdd8e23ac 33 ua0.SvMessage("RGB1_2"); // Meldung zum PC senden
Wizo 0:a17cdd8e23ac 34
Wizo 0:a17cdd8e23ac 35 Timer stw;
Wizo 0:a17cdd8e23ac 36 stw.start();
Wizo 0:a17cdd8e23ac 37 while(1) {
Wizo 0:a17cdd8e23ac 38 CommandHandler();
Wizo 0:a17cdd8e23ac 39 if( ua0.acqON && (stw.read_ms()>100) ) { // 10Hz
Wizo 0:a17cdd8e23ac 40 // dieser Teil wird mit 10Hz aufgerufen
Wizo 0:a17cdd8e23ac 41 stw.reset();
Wizo 0:a17cdd8e23ac 42
Wizo 0:a17cdd8e23ac 43 if( ua0.acqON ) {
Wizo 0:a17cdd8e23ac 44 // nur wenn vom PC aus das Senden eingeschaltet wurde wird auch etwas gesendet
Wizo 0:a17cdd8e23ac 45
Wizo 0:a17cdd8e23ac 46 }
Wizo 0:a17cdd8e23ac 47 }
Wizo 0:a17cdd8e23ac 48 }
Wizo 0:a17cdd8e23ac 49 return 1;
Wizo 0:a17cdd8e23ac 50 }
Wizo 0:a17cdd8e23ac 51
Wizo 0:a17cdd8e23ac 52 void CommandHandler()
Wizo 0:a17cdd8e23ac 53 {
Wizo 0:a17cdd8e23ac 54 uint8_t cmd;
Wizo 0:a17cdd8e23ac 55
Wizo 0:a17cdd8e23ac 56 if( !pc.IsDataAvail() )
Wizo 0:a17cdd8e23ac 57 return;
Wizo 0:a17cdd8e23ac 58 cmd = ua0.GetCommand();
Wizo 0:a17cdd8e23ac 59
Wizo 0:a17cdd8e23ac 60 if( cmd == 2)
Wizo 0:a17cdd8e23ac 61 {
Wizo 0:a17cdd8e23ac 62 LR = (1- ua0.ReadF()); LG = (1- ua0.ReadF()); LB = (1- ua0.ReadF());
Wizo 0:a17cdd8e23ac 63 ua0.SvMessage("Set RGB1");
Wizo 0:a17cdd8e23ac 64 }
Wizo 0:a17cdd8e23ac 65
Wizo 0:a17cdd8e23ac 66 // Commands für Regler
Wizo 0:a17cdd8e23ac 67
Wizo 0:a17cdd8e23ac 68 if( cmd == 3)
Wizo 0:a17cdd8e23ac 69 {
Wizo 0:a17cdd8e23ac 70 LR = (1- ua0.ReadF());
Wizo 0:a17cdd8e23ac 71
Wizo 0:a17cdd8e23ac 72 }
Wizo 0:a17cdd8e23ac 73
Wizo 0:a17cdd8e23ac 74 if( cmd == 4)
Wizo 0:a17cdd8e23ac 75 {
Wizo 0:a17cdd8e23ac 76 LG = (1- ua0.ReadF());
Wizo 0:a17cdd8e23ac 77 }
Wizo 0:a17cdd8e23ac 78
Wizo 0:a17cdd8e23ac 79
Wizo 0:a17cdd8e23ac 80 if( cmd == 5)
Wizo 0:a17cdd8e23ac 81 {
Wizo 0:a17cdd8e23ac 82 LB = (1- ua0.ReadF());
Wizo 0:a17cdd8e23ac 83 }
Wizo 0:a17cdd8e23ac 84 }
Wizo 0:a17cdd8e23ac 85
Wizo 0:a17cdd8e23ac 86