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.
Dependencies: QEI
main.cpp@1:f0e6a1eb94a8, 2022-04-27 (annotated)
- Committer:
- okadaya
- Date:
- Wed Apr 27 03:39:55 2022 +0000
- Revision:
- 1:f0e6a1eb94a8
- Parent:
- 0:ca2a77886231
encorder_moter
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| okadaya | 0:ca2a77886231 | 1 | /* mbed Microcontroller Library |
| okadaya | 0:ca2a77886231 | 2 | * Copyright (c) 2019 ARM Limited |
| okadaya | 0:ca2a77886231 | 3 | * SPDX-License-Identifier: Apache-2.0 |
| okadaya | 0:ca2a77886231 | 4 | */ |
| okadaya | 0:ca2a77886231 | 5 | |
| okadaya | 0:ca2a77886231 | 6 | #include "mbed.h" |
| okadaya | 0:ca2a77886231 | 7 | #include "platform/mbed_thread.h" |
| okadaya | 0:ca2a77886231 | 8 | #include "QEI.h" |
| okadaya | 0:ca2a77886231 | 9 | Serial pc(USBTX, USBRX, 115200); |
| okadaya | 0:ca2a77886231 | 10 | Serial md(PC_10, PC_11, 38400); |
| okadaya | 0:ca2a77886231 | 11 | // Blinking rate in milliseconds |
| okadaya | 0:ca2a77886231 | 12 | #define BLINKING_RATE_MS 500 |
| okadaya | 0:ca2a77886231 | 13 | #define ROTATE_PER_REVOLUTIONS 64 //For QEI's pulse data |
| okadaya | 0:ca2a77886231 | 14 | int r; |
| okadaya | 0:ca2a77886231 | 15 | bool kai=0; |
| okadaya | 0:ca2a77886231 | 16 | DigitalIn btn(USER_BUTTON); |
| okadaya | 0:ca2a77886231 | 17 | DigitalOut led(LED2); |
| okadaya | 0:ca2a77886231 | 18 | void moter(int x){ |
| okadaya | 0:ca2a77886231 | 19 | r = x+128; |
| okadaya | 0:ca2a77886231 | 20 | md.putc(r); |
| okadaya | 0:ca2a77886231 | 21 | pc.printf("%d\n",r); |
| okadaya | 0:ca2a77886231 | 22 | } |
| okadaya | 0:ca2a77886231 | 23 | int main() |
| okadaya | 0:ca2a77886231 | 24 | { |
| okadaya | 0:ca2a77886231 | 25 | md.format(8,Serial::None,1); |
| okadaya | 0:ca2a77886231 | 26 | moter(0); |
| okadaya | 0:ca2a77886231 | 27 | while(!btn){ |
| okadaya | 0:ca2a77886231 | 28 | led=!led; |
| okadaya | 0:ca2a77886231 | 29 | wait(0.05); |
| okadaya | 0:ca2a77886231 | 30 | } |
| okadaya | 0:ca2a77886231 | 31 | led=1; |
| okadaya | 0:ca2a77886231 | 32 | while(btn){} |
| okadaya | 0:ca2a77886231 | 33 | // Initialise the digital pin LED1 as an output |
| okadaya | 0:ca2a77886231 | 34 | DigitalOut led(LED1); |
| okadaya | 0:ca2a77886231 | 35 | QEI wheel(PC_8, PC_9, NC, ROTATE_PER_REVOLUTIONS, QEI::X4_ENCODING); |
| okadaya | 0:ca2a77886231 | 36 | while(1){ |
| okadaya | 0:ca2a77886231 | 37 | pc.printf("c"); |
| okadaya | 0:ca2a77886231 | 38 | pc.printf("%d",kai); |
| okadaya | 0:ca2a77886231 | 39 | pc.printf("Pulses: %07d", wheel.getPulses()); |
| okadaya | 0:ca2a77886231 | 40 | pc.printf("Rotate: %d\n", (int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)); |
| okadaya | 1:f0e6a1eb94a8 | 41 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)<10&&kai==0){ |
| okadaya | 1:f0e6a1eb94a8 | 42 | moter(48); |
| okadaya | 0:ca2a77886231 | 43 | pc.printf("a"); |
| okadaya | 1:f0e6a1eb94a8 | 44 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)==9){ |
| okadaya | 0:ca2a77886231 | 45 | kai=1; |
| okadaya | 0:ca2a77886231 | 46 | } |
| okadaya | 0:ca2a77886231 | 47 | } |
| okadaya | 0:ca2a77886231 | 48 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)>0&&kai==1){ |
| okadaya | 1:f0e6a1eb94a8 | 49 | moter(-48); |
| okadaya | 0:ca2a77886231 | 50 | pc.printf("b"); |
| okadaya | 0:ca2a77886231 | 51 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)==1){ |
| okadaya | 0:ca2a77886231 | 52 | kai=0; |
| okadaya | 0:ca2a77886231 | 53 | } |
| okadaya | 0:ca2a77886231 | 54 | } |
| okadaya | 0:ca2a77886231 | 55 | // moter(0); |
| okadaya | 0:ca2a77886231 | 56 | } |
| okadaya | 0:ca2a77886231 | 57 | } |