Gilles Raynaud
/
NUCLEO-TestCodeurF446RE
Test codeur
main.cpp@1:daa3db81f19c, 2020-11-02 (annotated)
- Committer:
- gr91
- Date:
- Mon Nov 02 17:46:56 2020 +0000
- Revision:
- 1:daa3db81f19c
- Parent:
- 0:884e80b11524
Test codeur
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Castanet | 0:884e80b11524 | 1 | /**********************************************************************/ |
Castanet | 0:884e80b11524 | 2 | /* */ |
Castanet | 0:884e80b11524 | 3 | /* Programme de test de l'extension codeur */ |
Castanet | 0:884e80b11524 | 4 | /* pour la carte F446RE */ |
Castanet | 0:884e80b11524 | 5 | /* */ |
Castanet | 0:884e80b11524 | 6 | /* Sylvain CASTANET - Novembre 2019 */ |
Castanet | 0:884e80b11524 | 7 | /* */ |
Castanet | 0:884e80b11524 | 8 | /* ------ */ |
Castanet | 0:884e80b11524 | 9 | /* */ |
Castanet | 0:884e80b11524 | 10 | /* Test des différentes fonctions de la carte : */ |
Castanet | 0:884e80b11524 | 11 | /* - codeur incrémental et BP sur interruptions timer */ |
Castanet | 0:884e80b11524 | 12 | /* - Led */ |
Castanet | 0:884e80b11524 | 13 | /* */ |
Castanet | 0:884e80b11524 | 14 | /**********************************************************************/ |
Castanet | 0:884e80b11524 | 15 | |
Castanet | 0:884e80b11524 | 16 | #include "mbed.h" |
Castanet | 0:884e80b11524 | 17 | #include "C12832.h" |
gr91 | 1:daa3db81f19c | 18 | #include "Fonts/Arial12x12.h" |
Castanet | 0:884e80b11524 | 19 | |
Castanet | 0:884e80b11524 | 20 | // Using Arduino pin notation |
Castanet | 0:884e80b11524 | 21 | C12832 lcd(D11, D13, D12, D7, D10); |
Castanet | 0:884e80b11524 | 22 | |
Castanet | 0:884e80b11524 | 23 | // Entrées numériques |
Castanet | 0:884e80b11524 | 24 | DigitalIn BP(PC_12,PullUp); // Mode PullUp |
Castanet | 0:884e80b11524 | 25 | DigitalIn CodeurA(PB_7); |
Castanet | 0:884e80b11524 | 26 | DigitalIn CodeurB(PA_15); |
Castanet | 0:884e80b11524 | 27 | |
Castanet | 0:884e80b11524 | 28 | // Led |
Castanet | 0:884e80b11524 | 29 | DigitalOut Led(PC_10); |
Castanet | 0:884e80b11524 | 30 | |
Castanet | 0:884e80b11524 | 31 | Ticker timer1; |
Castanet | 0:884e80b11524 | 32 | int counter=0; |
Castanet | 0:884e80b11524 | 33 | |
Castanet | 0:884e80b11524 | 34 | void codeur(){ |
Castanet | 0:884e80b11524 | 35 | static uint8_t code; |
Castanet | 0:884e80b11524 | 36 | |
Castanet | 0:884e80b11524 | 37 | code = (code << 2) + (((CodeurA << 1) | (CodeurB << 0)) & 3); |
Castanet | 0:884e80b11524 | 38 | code &= 15; |
Castanet | 0:884e80b11524 | 39 | switch (code) { |
Castanet | 0:884e80b11524 | 40 | case 0x7: |
Castanet | 0:884e80b11524 | 41 | counter--; |
Castanet | 0:884e80b11524 | 42 | Led = !Led; |
Castanet | 0:884e80b11524 | 43 | break; |
Castanet | 0:884e80b11524 | 44 | case 0xd: |
Castanet | 0:884e80b11524 | 45 | counter++; |
Castanet | 0:884e80b11524 | 46 | Led = !Led; |
Castanet | 0:884e80b11524 | 47 | break; |
Castanet | 0:884e80b11524 | 48 | } |
Castanet | 0:884e80b11524 | 49 | if (!BP){ |
Castanet | 0:884e80b11524 | 50 | Led = 1; |
Castanet | 0:884e80b11524 | 51 | code = 0x00; |
Castanet | 0:884e80b11524 | 52 | counter = 0; |
Castanet | 0:884e80b11524 | 53 | } |
Castanet | 0:884e80b11524 | 54 | } |
Castanet | 0:884e80b11524 | 55 | |
Castanet | 0:884e80b11524 | 56 | int main() |
Castanet | 0:884e80b11524 | 57 | { |
Castanet | 0:884e80b11524 | 58 | lcd.cls(); // Clear screen |
gr91 | 1:daa3db81f19c | 59 | lcd.set_font((unsigned char*)Arial12x12); |
Castanet | 0:884e80b11524 | 60 | lcd.locate(0,3); // 1ere ligne |
Castanet | 0:884e80b11524 | 61 | lcd.printf("Essai du module codeur"); |
Castanet | 0:884e80b11524 | 62 | lcd.locate(0,15); // 2nde ligne |
Castanet | 0:884e80b11524 | 63 | lcd.printf("Compteur : %d ",counter); |
Castanet | 0:884e80b11524 | 64 | |
Castanet | 0:884e80b11524 | 65 | // Interruption timer |
Castanet | 0:884e80b11524 | 66 | timer1.attach_us(&codeur, 500); |
Castanet | 0:884e80b11524 | 67 | |
Castanet | 0:884e80b11524 | 68 | Led = 1; |
Castanet | 0:884e80b11524 | 69 | while(1) { |
Castanet | 0:884e80b11524 | 70 | lcd.locate(0,15); |
Castanet | 0:884e80b11524 | 71 | lcd.printf("Compteur : %d ",counter); |
Castanet | 0:884e80b11524 | 72 | // wait_ms(100); |
Castanet | 0:884e80b11524 | 73 | } |
Castanet | 0:884e80b11524 | 74 | } |