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@0:ca2a77886231, 2021-06-23 (annotated)
- Committer:
- okadaya
- Date:
- Wed Jun 23 08:34:39 2021 +0000
- Revision:
- 0:ca2a77886231
- Child:
- 1:f0e6a1eb94a8
encoder
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 | PwmOut motor1(PF_8); | 
| okadaya | 0:ca2a77886231 | 12 | PwmOut motor2(PF_7); | 
| okadaya | 0:ca2a77886231 | 13 | // Blinking rate in milliseconds | 
| okadaya | 0:ca2a77886231 | 14 | #define BLINKING_RATE_MS 500 | 
| okadaya | 0:ca2a77886231 | 15 | #define ROTATE_PER_REVOLUTIONS 64 //For QEI's pulse data | 
| okadaya | 0:ca2a77886231 | 16 | int r; | 
| okadaya | 0:ca2a77886231 | 17 | bool kai=0; | 
| okadaya | 0:ca2a77886231 | 18 | DigitalIn btn(USER_BUTTON); | 
| okadaya | 0:ca2a77886231 | 19 | DigitalOut led(LED2); | 
| okadaya | 0:ca2a77886231 | 20 | void moter(int x){ | 
| okadaya | 0:ca2a77886231 | 21 | r = x+128; | 
| okadaya | 0:ca2a77886231 | 22 | md.putc(r); | 
| okadaya | 0:ca2a77886231 | 23 | pc.printf("%d\n",r); | 
| okadaya | 0:ca2a77886231 | 24 | } | 
| okadaya | 0:ca2a77886231 | 25 | int main() | 
| okadaya | 0:ca2a77886231 | 26 | { | 
| okadaya | 0:ca2a77886231 | 27 | md.format(8,Serial::None,1); | 
| okadaya | 0:ca2a77886231 | 28 | moter(0); | 
| okadaya | 0:ca2a77886231 | 29 | while(!btn){ | 
| okadaya | 0:ca2a77886231 | 30 | led=!led; | 
| okadaya | 0:ca2a77886231 | 31 | wait(0.05); | 
| okadaya | 0:ca2a77886231 | 32 | } | 
| okadaya | 0:ca2a77886231 | 33 | led=1; | 
| okadaya | 0:ca2a77886231 | 34 | while(btn){} | 
| okadaya | 0:ca2a77886231 | 35 | // Initialise the digital pin LED1 as an output | 
| okadaya | 0:ca2a77886231 | 36 | DigitalOut led(LED1); | 
| okadaya | 0:ca2a77886231 | 37 | QEI wheel(PC_8, PC_9, NC, ROTATE_PER_REVOLUTIONS, QEI::X4_ENCODING); | 
| okadaya | 0:ca2a77886231 | 38 | while(1){ | 
| okadaya | 0:ca2a77886231 | 39 | pc.printf("c"); | 
| okadaya | 0:ca2a77886231 | 40 | pc.printf("%d",kai); | 
| okadaya | 0:ca2a77886231 | 41 | pc.printf("Pulses: %07d", wheel.getPulses()); | 
| okadaya | 0:ca2a77886231 | 42 | pc.printf("Rotate: %d\n", (int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)); | 
| okadaya | 0:ca2a77886231 | 43 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)<100&&kai==0){ | 
| okadaya | 0:ca2a77886231 | 44 | moter(64); | 
| okadaya | 0:ca2a77886231 | 45 | pc.printf("a"); | 
| okadaya | 0:ca2a77886231 | 46 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)==99){ | 
| okadaya | 0:ca2a77886231 | 47 | kai=1; | 
| okadaya | 0:ca2a77886231 | 48 | } | 
| okadaya | 0:ca2a77886231 | 49 | } | 
| okadaya | 0:ca2a77886231 | 50 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)>0&&kai==1){ | 
| okadaya | 0:ca2a77886231 | 51 | moter(-64); | 
| okadaya | 0:ca2a77886231 | 52 | pc.printf("b"); | 
| okadaya | 0:ca2a77886231 | 53 | if((int)wheel.getPulses()/(ROTATE_PER_REVOLUTIONS*4)==1){ | 
| okadaya | 0:ca2a77886231 | 54 | kai=0; | 
| okadaya | 0:ca2a77886231 | 55 | } | 
| okadaya | 0:ca2a77886231 | 56 | } | 
| okadaya | 0:ca2a77886231 | 57 | // moter(0); | 
| okadaya | 0:ca2a77886231 | 58 | } | 
| okadaya | 0:ca2a77886231 | 59 | } |