
Test codeur
main.cpp@0:884e80b11524, 2020-11-02 (annotated)
- Committer:
- Castanet
- Date:
- Mon Nov 02 13:23:42 2020 +0000
- Revision:
- 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" |
Castanet | 0:884e80b11524 | 18 | |
Castanet | 0:884e80b11524 | 19 | // Using Arduino pin notation |
Castanet | 0:884e80b11524 | 20 | C12832 lcd(D11, D13, D12, D7, D10); |
Castanet | 0:884e80b11524 | 21 | |
Castanet | 0:884e80b11524 | 22 | // Entrées numériques |
Castanet | 0:884e80b11524 | 23 | DigitalIn BP(PC_12,PullUp); // Mode PullUp |
Castanet | 0:884e80b11524 | 24 | DigitalIn CodeurA(PB_7); |
Castanet | 0:884e80b11524 | 25 | DigitalIn CodeurB(PA_15); |
Castanet | 0:884e80b11524 | 26 | |
Castanet | 0:884e80b11524 | 27 | // Led |
Castanet | 0:884e80b11524 | 28 | DigitalOut Led(PC_10); |
Castanet | 0:884e80b11524 | 29 | |
Castanet | 0:884e80b11524 | 30 | Ticker timer1; |
Castanet | 0:884e80b11524 | 31 | int counter=0; |
Castanet | 0:884e80b11524 | 32 | |
Castanet | 0:884e80b11524 | 33 | void codeur(){ |
Castanet | 0:884e80b11524 | 34 | static uint8_t code; |
Castanet | 0:884e80b11524 | 35 | |
Castanet | 0:884e80b11524 | 36 | code = (code << 2) + (((CodeurA << 1) | (CodeurB << 0)) & 3); |
Castanet | 0:884e80b11524 | 37 | code &= 15; |
Castanet | 0:884e80b11524 | 38 | switch (code) { |
Castanet | 0:884e80b11524 | 39 | case 0x7: |
Castanet | 0:884e80b11524 | 40 | counter--; |
Castanet | 0:884e80b11524 | 41 | Led = !Led; |
Castanet | 0:884e80b11524 | 42 | break; |
Castanet | 0:884e80b11524 | 43 | case 0xd: |
Castanet | 0:884e80b11524 | 44 | counter++; |
Castanet | 0:884e80b11524 | 45 | Led = !Led; |
Castanet | 0:884e80b11524 | 46 | break; |
Castanet | 0:884e80b11524 | 47 | } |
Castanet | 0:884e80b11524 | 48 | if (!BP){ |
Castanet | 0:884e80b11524 | 49 | Led = 1; |
Castanet | 0:884e80b11524 | 50 | code = 0x00; |
Castanet | 0:884e80b11524 | 51 | counter = 0; |
Castanet | 0:884e80b11524 | 52 | } |
Castanet | 0:884e80b11524 | 53 | } |
Castanet | 0:884e80b11524 | 54 | |
Castanet | 0:884e80b11524 | 55 | int main() |
Castanet | 0:884e80b11524 | 56 | { |
Castanet | 0:884e80b11524 | 57 | lcd.cls(); // Clear screen |
Castanet | 0:884e80b11524 | 58 | lcd.locate(0,3); // 1ere ligne |
Castanet | 0:884e80b11524 | 59 | lcd.printf("Essai du module codeur"); |
Castanet | 0:884e80b11524 | 60 | lcd.locate(0,15); // 2nde ligne |
Castanet | 0:884e80b11524 | 61 | lcd.printf("Compteur : %d ",counter); |
Castanet | 0:884e80b11524 | 62 | |
Castanet | 0:884e80b11524 | 63 | // Interruption timer |
Castanet | 0:884e80b11524 | 64 | timer1.attach_us(&codeur, 500); |
Castanet | 0:884e80b11524 | 65 | |
Castanet | 0:884e80b11524 | 66 | Led = 1; |
Castanet | 0:884e80b11524 | 67 | while(1) { |
Castanet | 0:884e80b11524 | 68 | lcd.locate(0,15); |
Castanet | 0:884e80b11524 | 69 | lcd.printf("Compteur : %d ",counter); |
Castanet | 0:884e80b11524 | 70 | // wait_ms(100); |
Castanet | 0:884e80b11524 | 71 | } |
Castanet | 0:884e80b11524 | 72 | } |