interrupt géré compil ok sans isr

Fork of T2_STM32 by Atechsys

Committer:
Tioneb
Date:
Sun Jan 14 15:50:49 2018 +0000
Revision:
2:ab0ccf9bb38c
Parent:
1:979edb6d1559
Child:
5:d6484db1ec5c
Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Tioneb 0:c365c76c11c3 1 #include "mbed.h"
Tioneb 0:c365c76c11c3 2
Tioneb 2:ab0ccf9bb38c 3 // Modification dans variant.h de la variable PWM_FREQUENCY afin de changer la fréquence par défaut du PWM
Tioneb 2:ab0ccf9bb38c 4
Tioneb 2:ab0ccf9bb38c 5 //#include "StepperMotor.h" // Classe Moteur pas à pas
Tioneb 2:ab0ccf9bb38c 6 #include "Cylinder.h"
Tioneb 2:ab0ccf9bb38c 7 #include "Carriage.h"
Tioneb 2:ab0ccf9bb38c 8 #include "Lift.h" // Classe Ascenseur
Tioneb 2:ab0ccf9bb38c 9 #include "Config.h" // Bibliothéque Configuration
Tioneb 0:c365c76c11c3 10
Tioneb 2:ab0ccf9bb38c 11 unsigned char Carriage_CurrentPos = 1,
Tioneb 2:ab0ccf9bb38c 12 Lift_CurrentPos = 1,
Tioneb 2:ab0ccf9bb38c 13 RxdBuffer[2], // Déclaration Buffer de réception
Tioneb 2:ab0ccf9bb38c 14 ActualAdress = 0,
Tioneb 2:ab0ccf9bb38c 15 Address = 0,
Tioneb 2:ab0ccf9bb38c 16 Command = 0,
Tioneb 2:ab0ccf9bb38c 17 Check_serial_is_OK,
Tioneb 2:ab0ccf9bb38c 18 State = 0;
Tioneb 2:ab0ccf9bb38c 19 int Sequence = 0,
Tioneb 2:ab0ccf9bb38c 20 i = 0,
Tioneb 2:ab0ccf9bb38c 21 j = 0;
Tioneb 2:ab0ccf9bb38c 22 unsigned long CurrentMillis; // Variable millis
Tioneb 2:ab0ccf9bb38c 23 bool test = true;
Tioneb 0:c365c76c11c3 24
Tioneb 2:ab0ccf9bb38c 25 Lift Lift(Lift_pinUp, Lift_pinDown, Lift_UpSensor, Lift_MiddleSensor); //Appel de l'objet ascenseur
Tioneb 2:ab0ccf9bb38c 26 Cylinder Cylinder(Cylinder_OriginSensor, Cylinder_StepPin, Cylinder_DirPin, Cylinder_EnablePin, Cylinder_PosMin, Cylinder_PosMax); //Appel de l'objet barillet
Tioneb 2:ab0ccf9bb38c 27 Carriage Carriage(Carriage_OriginSensor, Carriage_StepPin, Carriage_DirPin, Carriage_EnablePin, Carriage_PosMin, Carriage_PosMax); //Appel de l'objet chariot
Tioneb 2:ab0ccf9bb38c 28
Tioneb 2:ab0ccf9bb38c 29 void setup() {
Tioneb 2:ab0ccf9bb38c 30
Tioneb 2:ab0ccf9bb38c 31 Serial.begin(115200); // Port série pour communication avec Raspberry
Tioneb 2:ab0ccf9bb38c 32
Tioneb 2:ab0ccf9bb38c 33 pinMode(Carriage_OriginSensor, INPUT_PULLUP);
Tioneb 2:ab0ccf9bb38c 34 pinMode(Buzzer_Output, OUTPUT);
Tioneb 2:ab0ccf9bb38c 35 pinMode(Cylinder_EnablePin, INPUT);
Tioneb 2:ab0ccf9bb38c 36 digitalWrite(Cylinder_DirPin, LOW);
Tioneb 2:ab0ccf9bb38c 37 Cylinder.Origin(Cylinder_OriginSensor);
Tioneb 2:ab0ccf9bb38c 38
Tioneb 2:ab0ccf9bb38c 39 }
Tioneb 2:ab0ccf9bb38c 40
Tioneb 2:ab0ccf9bb38c 41 void loop() {
Tioneb 0:c365c76c11c3 42
Tioneb 2:ab0ccf9bb38c 43 // Remise à zéro des variables de communications à chaque boucle
Tioneb 2:ab0ccf9bb38c 44 Address = 0;
Tioneb 2:ab0ccf9bb38c 45 Command = 0;
Tioneb 2:ab0ccf9bb38c 46 State = 0;
Tioneb 2:ab0ccf9bb38c 47
Tioneb 2:ab0ccf9bb38c 48 ReadSerial(); // Lecture série
Tioneb 2:ab0ccf9bb38c 49
Tioneb 2:ab0ccf9bb38c 50 Address = RxdBuffer[0];
Tioneb 2:ab0ccf9bb38c 51 Command = RxdBuffer[1];
Tioneb 0:c365c76c11c3 52
Tioneb 2:ab0ccf9bb38c 53 Check_serial_is_OK = 0;
Tioneb 2:ab0ccf9bb38c 54 // Tester la trame recu
Tioneb 2:ab0ccf9bb38c 55 if ((Address != Start_Command) && (Command != Start_Command)){ // si la trame est correct (pas de 9 dans la commande ou l'adresse)
Tioneb 2:ab0ccf9bb38c 56 Check_serial_is_OK = 1;
Tioneb 2:ab0ccf9bb38c 57 }
Tioneb 2:ab0ccf9bb38c 58 else{ // si la trame est mauvaise, ou identique, ne rien faire dans le switch/case
Tioneb 2:ab0ccf9bb38c 59 Address = 0;
Tioneb 2:ab0ccf9bb38c 60 }
Tioneb 2:ab0ccf9bb38c 61
Tioneb 2:ab0ccf9bb38c 62 //////////////////////////////////// DEV: Affichage de la trame reçue ////////////////////////////////////
Tioneb 2:ab0ccf9bb38c 63 Serial3.print("Reception : ");
Tioneb 2:ab0ccf9bb38c 64 Serial3.print(Start_Command);
Tioneb 2:ab0ccf9bb38c 65 Serial3.print(RxdBuffer[0]);
Tioneb 2:ab0ccf9bb38c 66 Serial3.println(RxdBuffer[1]);
Tioneb 2:ab0ccf9bb38c 67
Tioneb 2:ab0ccf9bb38c 68 digitalWrite(Buzzer_Output, HIGH);
Tioneb 2:ab0ccf9bb38c 69 delay(500);
Tioneb 2:ab0ccf9bb38c 70 digitalWrite(Buzzer_Output, LOW);
Tioneb 2:ab0ccf9bb38c 71 delay(500);
Tioneb 2:ab0ccf9bb38c 72 digitalWrite(Buzzer_Output, HIGH);
Tioneb 2:ab0ccf9bb38c 73 delay(500);
Tioneb 2:ab0ccf9bb38c 74 digitalWrite(Buzzer_Output, LOW);
Tioneb 2:ab0ccf9bb38c 75 delay(500);
Tioneb 2:ab0ccf9bb38c 76 digitalWrite(Buzzer_Output, HIGH);
Tioneb 2:ab0ccf9bb38c 77 delay(500);
Tioneb 2:ab0ccf9bb38c 78 digitalWrite(Buzzer_Output, LOW);
Tioneb 2:ab0ccf9bb38c 79 delay(500);
Tioneb 2:ab0ccf9bb38c 80
Tioneb 2:ab0ccf9bb38c 81 }