Test codeur

Dependencies:   C12832-font

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?

UserRevisionLine numberNew 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 }