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:f5694e6b4092, 2020-04-28 (annotated)
- Committer:
- jack1930
- Date:
- Tue Apr 28 15:52:47 2020 +0000
- Revision:
- 0:f5694e6b4092
- Child:
- 1:eff878d1c631
V1.0
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jack1930 | 0:f5694e6b4092 | 1 | /* mbed Microcontroller Library |
| jack1930 | 0:f5694e6b4092 | 2 | * Copyright (c) 2019 ARM Limited |
| jack1930 | 0:f5694e6b4092 | 3 | * SPDX-License-Identifier: Apache-2.0 |
| jack1930 | 0:f5694e6b4092 | 4 | */ |
| jack1930 | 0:f5694e6b4092 | 5 | |
| jack1930 | 0:f5694e6b4092 | 6 | #include "mbed.h" |
| jack1930 | 0:f5694e6b4092 | 7 | #include "platform/mbed_thread.h" |
| jack1930 | 0:f5694e6b4092 | 8 | #include "LCD.h" |
| jack1930 | 0:f5694e6b4092 | 9 | |
| jack1930 | 0:f5694e6b4092 | 10 | #define dg drehgeber>>9 |
| jack1930 | 0:f5694e6b4092 | 11 | |
| jack1930 | 0:f5694e6b4092 | 12 | InterruptIn dt(PA_9); |
| jack1930 | 0:f5694e6b4092 | 13 | InterruptIn clk(PA_10); |
| jack1930 | 0:f5694e6b4092 | 14 | PortIn drehgeber(PortA,0b11000000000); |
| jack1930 | 0:f5694e6b4092 | 15 | PortOut diag(PortC,0b11111111); |
| jack1930 | 0:f5694e6b4092 | 16 | int x=1,z=0,alt,neu,lsb[4]={3,0,2,1}; |
| jack1930 | 0:f5694e6b4092 | 17 | |
| jack1930 | 0:f5694e6b4092 | 18 | |
| jack1930 | 0:f5694e6b4092 | 19 | void drehgeberISR(void) |
| jack1930 | 0:f5694e6b4092 | 20 | { |
| jack1930 | 0:f5694e6b4092 | 21 | neu=lsb[dg]; |
| jack1930 | 0:f5694e6b4092 | 22 | diag=x; |
| jack1930 | 0:f5694e6b4092 | 23 | if (alt==3 && neu==0) z=z+1; |
| jack1930 | 0:f5694e6b4092 | 24 | if (alt==0 && neu==3) z=z-1; |
| jack1930 | 0:f5694e6b4092 | 25 | x=(z<<2)+neu; |
| jack1930 | 0:f5694e6b4092 | 26 | alt=neu; |
| jack1930 | 0:f5694e6b4092 | 27 | } |
| jack1930 | 0:f5694e6b4092 | 28 | |
| jack1930 | 0:f5694e6b4092 | 29 | void resetPos(void) |
| jack1930 | 0:f5694e6b4092 | 30 | { |
| jack1930 | 0:f5694e6b4092 | 31 | x=1; |
| jack1930 | 0:f5694e6b4092 | 32 | z=0; |
| jack1930 | 0:f5694e6b4092 | 33 | //__disable_irq(); |
| jack1930 | 0:f5694e6b4092 | 34 | diag=0; |
| jack1930 | 0:f5694e6b4092 | 35 | } |
| jack1930 | 0:f5694e6b4092 | 36 | |
| jack1930 | 0:f5694e6b4092 | 37 | int main() |
| jack1930 | 0:f5694e6b4092 | 38 | { |
| jack1930 | 0:f5694e6b4092 | 39 | |
| jack1930 | 0:f5694e6b4092 | 40 | InterruptIn sw(PA_8); |
| jack1930 | 0:f5694e6b4092 | 41 | sw.fall(&resetPos); |
| jack1930 | 0:f5694e6b4092 | 42 | sw.mode(PullUp); |
| jack1930 | 0:f5694e6b4092 | 43 | dt.rise(&drehgeberISR); |
| jack1930 | 0:f5694e6b4092 | 44 | dt.fall(&drehgeberISR); |
| jack1930 | 0:f5694e6b4092 | 45 | clk.rise(&drehgeberISR); |
| jack1930 | 0:f5694e6b4092 | 46 | clk.fall(&drehgeberISR); |
| jack1930 | 0:f5694e6b4092 | 47 | //__disable_irq(); |
| jack1930 | 0:f5694e6b4092 | 48 | lcd mylcd; |
| jack1930 | 0:f5694e6b4092 | 49 | mylcd.clear(); |
| jack1930 | 0:f5694e6b4092 | 50 | mylcd.cursorpos(0); |
| jack1930 | 0:f5694e6b4092 | 51 | while (true) { |
| jack1930 | 0:f5694e6b4092 | 52 | |
| jack1930 | 0:f5694e6b4092 | 53 | |
| jack1930 | 0:f5694e6b4092 | 54 | mylcd.cursorpos(0); |
| jack1930 | 0:f5694e6b4092 | 55 | mylcd.printf("Position %d ",x); |
| jack1930 | 0:f5694e6b4092 | 56 | |
| jack1930 | 0:f5694e6b4092 | 57 | |
| jack1930 | 0:f5694e6b4092 | 58 | } |
| jack1930 | 0:f5694e6b4092 | 59 | } |