Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ProcVisDemo by
Revision 2:c7dac33300a8, committed 2016-04-07
- Comitter:
- hollegha2
- Date:
- Thu Apr 07 09:51:06 2016 +0000
- Parent:
- 1:e88b745f2ca2
- Commit message:
- Non Blocking ReadCString
Changed in this revision
diff -r e88b745f2ca2 -r c7dac33300a8 BtnEventM0.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BtnEventM0.h Thu Apr 07 09:51:06 2016 +0000 @@ -0,0 +1,146 @@ + + +class BtnEventM0 +{ +public: + int16_t pressed; + + BtnEventM0(PinName pin) : _isr(pin) { + pressed=0; + } + + // Ist eine steigende Flanke aufgetreten ? + int CheckFlag() { + if( pressed ) { + pressed=0; + return 1; + } + return 0; + } + + // 1..Button is pressed else 0 + int CheckButton() { + return _isr.read(); + } + + void Init() { + _isr.rise(this, &BtnEventM0::RisingISR); + } + + void RisingISR() { + if( _isr.read() ) + pressed = 1; + } +protected: + InterruptIn _isr; +}; + +/* +class BtnEventM02 : public BtnEventM0 +{ +public: + BtnEventM02(PinName pin) : BtnEventM0(pin) { + _tm.stop(); + _tm.reset(); + _state=1; + } + + void Init() { + _isr.rise(this, &BtnEventM02::RisingISR); + } + + void RisingISR() { + if( !_isr.read() ) + return; + pressed = 1; + _tm.start(); + _state = 2; + } + + void CheckButton() { + if( _state==1 ) + return; + if( _state==2 ) { + if( !_isr.read() ) { + _state = 1; + return; + } + if( _tm.read_ms()>500 ) { + _tm.reset(); + _state = 3; + pressed = 1; + } + } else if( _state==3 ) { + if( !_isr.read() ) { + _state = 1; + return; + } + if( _tm.read_ms()>100 ) { + _tm.reset(); + _state = 3; + pressed = 1; + } + } + } +private: + int16_t _state; + Timer _tm; +}; +*/ + +class AnalogInHL : public AnalogIn +{ +public: + AnalogInHL(PinName pin) : AnalogIn(pin) { } + int Read() { + return read_u16()>>6; + } +}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff -r e88b745f2ca2 -r c7dac33300a8 ProcVisDemo.cpp --- a/ProcVisDemo.cpp Fri Oct 09 07:58:26 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -#include "mbed.h" -#include "Serial_HL.h" - -SerialBLK pc(USBTX, USBRX); -SvProtocol ua0(&pc); - -// V2.0 -// BusOut leds(LED1,LED2,LED3,LED4); Bertl14 -// M0-Board -BusOut leds(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1); - - -void CommandHandler(); - -int main(void) -{ - pc.format(8,SerialBLK::None,1); - pc.baud(115200); - leds = 9; - - ua0.SvMessage("SvTest_Serial_HL"); // Meldung zum PC senden - - int16_t sv1=0, sv2=100; - Timer stw; - stw.start(); - while(1) { - CommandHandler(); - if( ua0.acqON && (stw.read_ms()>100) ) { // 10Hz - // dieser Teil wird mit 10Hz aufgerufen - stw.reset(); - sv1++; - sv2++; - if( ua0.acqON ) { - // nur wenn vom PC aus das Senden eingeschaltet wurde - // wird auch etwas gesendet - ua0.WriteSvI16(1, sv1); - ua0.WriteSvI16(2, sv2); - } - } - } - return 1; -} - -void CommandHandler() -{ - uint8_t cmd; - int16_t idata1, idata2; - - // 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 - idata1 = ua0.ReadI16(); - idata2 = ua0.ReadI16(); - // für die Analyse den Wert einfach nur zum PC zurücksenden - ua0.SvPrintf("Command2 %d %d", idata1, idata2); - } -} - -
diff -r e88b745f2ca2 -r c7dac33300a8 ScanfNonBlocking.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ScanfNonBlocking.cpp Thu Apr 07 09:51:06 2016 +0000 @@ -0,0 +1,45 @@ + +#include "mbed.h" +#include "BtnEventM0.h" +#include "Serial_HL.h" + +SerialBLK pc(USBTX, USBRX); +SvProtocol ua0(&pc); + +// LSB MSB +BusOut lb(P1_13,P1_12,P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1); + +char txt[30]; + +void Blinker(); Timer t1; + +int main() +{ + t1.start(); + lb = 0; + pc.format(8,SerialBLK::None,1); pc.baud(115200); + + while(1) + { + Blinker(); + if( pc.IsDataAvail() ) { + ua0.ReadCString(txt,'\n'); + strcat(txt,"\n"); + ua0.Puts(txt); + } + } +} + + +void Blinker() +{ + if( t1.read_ms()<200 ) + return; + t1.reset(); + if( !lb ) + lb = 0x000F; + else + lb = 0; +} + +
diff -r e88b745f2ca2 -r c7dac33300a8 Serial_HL.lib --- a/Serial_HL.lib Fri Oct 09 07:58:26 2015 +0000 +++ b/Serial_HL.lib Thu Apr 07 09:51:06 2016 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/hollegha2/code/Serial_HL/#b958bdf108cf +http://mbed.org/users/hollegha2/code/Serial_HL/#1a03b6d5226f