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.
main.cpp@0:afeca64a6543, 2018-10-17 (annotated)
- Committer:
- martwerl
- Date:
- Wed Oct 17 17:19:45 2018 +0000
- Revision:
- 0:afeca64a6543
- Child:
- 1:dfa0f59e8d2c
Diplomarbeit_MW_CW
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
martwerl | 0:afeca64a6543 | 1 | |
martwerl | 0:afeca64a6543 | 2 | #include "MMouse18.h" |
martwerl | 0:afeca64a6543 | 3 | #include "Serial_HL.h" |
martwerl | 0:afeca64a6543 | 4 | |
martwerl | 0:afeca64a6543 | 5 | SerialBLK pc(USBTX, USBRX); |
martwerl | 0:afeca64a6543 | 6 | // SerialBLK pc(p28, p27); |
martwerl | 0:afeca64a6543 | 7 | SvProtocol ua0(&pc); |
martwerl | 0:afeca64a6543 | 8 | |
martwerl | 0:afeca64a6543 | 9 | void CommandHandler(); |
martwerl | 0:afeca64a6543 | 10 | void CheckButton(); |
martwerl | 0:afeca64a6543 | 11 | |
martwerl | 0:afeca64a6543 | 12 | Motor mL(p22,p24,p23); Motor mR(p26, p21, p25); |
martwerl | 0:afeca64a6543 | 13 | Encoder encL(p15,p16); Encoder encR(p30,p29); |
martwerl | 0:afeca64a6543 | 14 | |
martwerl | 0:afeca64a6543 | 15 | DigitalIn sw(p5); |
martwerl | 0:afeca64a6543 | 16 | |
martwerl | 0:afeca64a6543 | 17 | BusOut leds(LED1,LED2,LED3,LED4); |
martwerl | 0:afeca64a6543 | 18 | |
martwerl | 0:afeca64a6543 | 19 | int main(void) |
martwerl | 0:afeca64a6543 | 20 | { |
martwerl | 0:afeca64a6543 | 21 | pc.format(8,SerialBLK::None,1); |
martwerl | 0:afeca64a6543 | 22 | pc.baud(115200); |
martwerl | 0:afeca64a6543 | 23 | mL.SetPow(0); mR.SetPow(0); |
martwerl | 0:afeca64a6543 | 24 | encL.Init(ENC_A,ENC_RISE); encR.Init(ENC_A,ENC_RISE); |
martwerl | 0:afeca64a6543 | 25 | |
martwerl | 0:afeca64a6543 | 26 | ua0.SvMessage("MotTest1"); |
martwerl | 0:afeca64a6543 | 27 | |
martwerl | 0:afeca64a6543 | 28 | Timer stw; |
martwerl | 0:afeca64a6543 | 29 | stw.start(); |
martwerl | 0:afeca64a6543 | 30 | while(1) { |
martwerl | 0:afeca64a6543 | 31 | CheckButton(); |
martwerl | 0:afeca64a6543 | 32 | CommandHandler(); |
martwerl | 0:afeca64a6543 | 33 | if( stw.read_ms()>10 ) { |
martwerl | 0:afeca64a6543 | 34 | stw.reset(); |
martwerl | 0:afeca64a6543 | 35 | if( ua0.acqON ) { |
martwerl | 0:afeca64a6543 | 36 | ua0.WriteSvI16(1, encL.cnt); |
martwerl | 0:afeca64a6543 | 37 | ua0.WriteSvI16(2, encR.cnt); |
martwerl | 0:afeca64a6543 | 38 | } |
martwerl | 0:afeca64a6543 | 39 | } |
martwerl | 0:afeca64a6543 | 40 | } |
martwerl | 0:afeca64a6543 | 41 | return 1; |
martwerl | 0:afeca64a6543 | 42 | } |
martwerl | 0:afeca64a6543 | 43 | |
martwerl | 0:afeca64a6543 | 44 | void CommandHandler() |
martwerl | 0:afeca64a6543 | 45 | { |
martwerl | 0:afeca64a6543 | 46 | uint8_t cmd; |
martwerl | 0:afeca64a6543 | 47 | if( !pc.IsDataAvail() ) |
martwerl | 0:afeca64a6543 | 48 | return; |
martwerl | 0:afeca64a6543 | 49 | cmd = ua0.GetCommand(); |
martwerl | 0:afeca64a6543 | 50 | if( cmd==2 ) { |
martwerl | 0:afeca64a6543 | 51 | mL.SetPow(ua0.ReadF()); mR.SetPow(ua0.ReadF()); |
martwerl | 0:afeca64a6543 | 52 | ua0.SvMessage("Set Pow"); |
martwerl | 0:afeca64a6543 | 53 | } |
martwerl | 0:afeca64a6543 | 54 | if( cmd==3 ) { |
martwerl | 0:afeca64a6543 | 55 | encL.cnt=encR.cnt=0; |
martwerl | 0:afeca64a6543 | 56 | ua0.SvMessage("Reset Cnt"); |
martwerl | 0:afeca64a6543 | 57 | } |
martwerl | 0:afeca64a6543 | 58 | } |
martwerl | 0:afeca64a6543 | 59 | |
martwerl | 0:afeca64a6543 | 60 | void CheckButton() |
martwerl | 0:afeca64a6543 | 61 | { |
martwerl | 0:afeca64a6543 | 62 | if( sw==1 ) |
martwerl | 0:afeca64a6543 | 63 | leds=0xF; |
martwerl | 0:afeca64a6543 | 64 | else |
martwerl | 0:afeca64a6543 | 65 | leds=0; |
martwerl | 0:afeca64a6543 | 66 | } |