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.
Dependencies: mbed bloc_8_pompe2 Herkulex_library_2022 ident_crac1 bloc_pompe2
main.cpp@2:c7f2e7d8b305, 2022-03-08 (annotated)
- Committer:
- ares1999
- Date:
- Tue Mar 08 16:03:27 2022 +0000
- Revision:
- 2:c7f2e7d8b305
- Child:
- 3:77e937c315f1
t
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| ares1999 | 2:c7f2e7d8b305 | 1 | #include "main.h" |
| ares1999 | 2:c7f2e7d8b305 | 2 | |
| ares1999 | 2:c7f2e7d8b305 | 3 | //initialisations relatives au Bus CAN |
| ares1999 | 2:c7f2e7d8b305 | 4 | CAN bus_can(PB_8,PB_9,1000000); |
| ares1999 | 2:c7f2e7d8b305 | 5 | |
| ares1999 | 2:c7f2e7d8b305 | 6 | CANMessage rx_message ; |
| ares1999 | 2:c7f2e7d8b305 | 7 | char data[1] = {0x28}; |
| ares1999 | 2:c7f2e7d8b305 | 8 | CANMessage tx_message(0x220,data,1,CANData,CANStandard); |
| ares1999 | 2:c7f2e7d8b305 | 9 | |
| ares1999 | 2:c7f2e7d8b305 | 10 | int flag_reception_CAN = 0 ; |
| ares1999 | 2:c7f2e7d8b305 | 11 | void interruption_reception(void) ; |
| ares1999 | 2:c7f2e7d8b305 | 12 | void gestion_Message_CAN(void) ; |
| ares1999 | 2:c7f2e7d8b305 | 13 | void Envoi_msg_CAN(char donnee); |
| ares1999 | 2:c7f2e7d8b305 | 14 | |
| ares1999 | 2:c7f2e7d8b305 | 15 | CANMessage msgRxBuffer[SIZE_FIFO]; |
| ares1999 | 2:c7f2e7d8b305 | 16 | unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN |
| ares1999 | 2:c7f2e7d8b305 | 17 | signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN |
| ares1999 | 2:c7f2e7d8b305 | 18 | unsigned short ackFinAction = 0; |
| ares1999 | 2:c7f2e7d8b305 | 19 | |
| ares1999 | 2:c7f2e7d8b305 | 20 | int main (void) |
| ares1999 | 2:c7f2e7d8b305 | 21 | { |
| ares1999 | 2:c7f2e7d8b305 | 22 | wait_ms(200); //tempo pour boot |
| ares1999 | 2:c7f2e7d8b305 | 23 | bus_can.attach(&interruption_reception); //création de l'interrupt attachée à la réception sur le CAN |
| ares1999 | 2:c7f2e7d8b305 | 24 | //servo_interrupt_en(); //permettre les interuptions |
| ares1999 | 2:c7f2e7d8b305 | 25 | //activer_torque(); |
| ares1999 | 2:c7f2e7d8b305 | 26 | wait_ms(200); |
| ares1999 | 2:c7f2e7d8b305 | 27 | //pc.printf("\nLAUNCHED\n\r"); |
| ares1999 | 2:c7f2e7d8b305 | 28 | |
| ares1999 | 2:c7f2e7d8b305 | 29 | while(1) |
| ares1999 | 2:c7f2e7d8b305 | 30 | { |
| ares1999 | 2:c7f2e7d8b305 | 31 | if(flag_reception_CAN) |
| ares1999 | 2:c7f2e7d8b305 | 32 | { |
| ares1999 | 2:c7f2e7d8b305 | 33 | gestion_Message_CAN(); |
| ares1999 | 2:c7f2e7d8b305 | 34 | } |
| ares1999 | 2:c7f2e7d8b305 | 35 | } |
| ares1999 | 2:c7f2e7d8b305 | 36 | } |
| ares1999 | 2:c7f2e7d8b305 | 37 | |
| ares1999 | 2:c7f2e7d8b305 | 38 | void interruption_reception(void) |
| ares1999 | 2:c7f2e7d8b305 | 39 | { |
| ares1999 | 2:c7f2e7d8b305 | 40 | bus_can.write(tx_message); |
| ares1999 | 2:c7f2e7d8b305 | 41 | bus_can.read(rx_message); |
| ares1999 | 2:c7f2e7d8b305 | 42 | flag_reception_CAN = 1 ; |
| ares1999 | 2:c7f2e7d8b305 | 43 | } |
| ares1999 | 2:c7f2e7d8b305 | 44 | |
| ares1999 | 2:c7f2e7d8b305 | 45 | void gestion_Message_CAN(void) |
| ares1999 | 2:c7f2e7d8b305 | 46 | { |
| ares1999 | 2:c7f2e7d8b305 | 47 | int identifiant = rx_message.id ; |
| ares1999 | 2:c7f2e7d8b305 | 48 | |
| ares1999 | 2:c7f2e7d8b305 | 49 | switch (identifiant) |
| ares1999 | 2:c7f2e7d8b305 | 50 | { |
| ares1999 | 2:c7f2e7d8b305 | 51 | case TORQUE_ACT: |
| ares1999 | 2:c7f2e7d8b305 | 52 | activer_torque(); |
| ares1999 | 2:c7f2e7d8b305 | 53 | break; |
| ares1999 | 2:c7f2e7d8b305 | 54 | |
| ares1999 | 2:c7f2e7d8b305 | 55 | case TORQUE_DESACT: |
| ares1999 | 2:c7f2e7d8b305 | 56 | desactiver_torque(); |
| ares1999 | 2:c7f2e7d8b305 | 57 | break; |
| ares1999 | 2:c7f2e7d8b305 | 58 | |
| ares1999 | 2:c7f2e7d8b305 | 59 | case BRAS_PRISE: |
| ares1999 | 2:c7f2e7d8b305 | 60 | fct_prise_avant(SERIAL_BAS_DROITE); |
| ares1999 | 2:c7f2e7d8b305 | 61 | break; |
| ares1999 | 2:c7f2e7d8b305 | 62 | |
| ares1999 | 2:c7f2e7d8b305 | 63 | case TORQUE_1: |
| ares1999 | 2:c7f2e7d8b305 | 64 | setTorque(AV_BASE,TORQUE_ON,5); |
| ares1999 | 2:c7f2e7d8b305 | 65 | break; |
| ares1999 | 2:c7f2e7d8b305 | 66 | |
| ares1999 | 2:c7f2e7d8b305 | 67 | default: |
| ares1999 | 2:c7f2e7d8b305 | 68 | break; |
| ares1999 | 2:c7f2e7d8b305 | 69 | } |
| ares1999 | 2:c7f2e7d8b305 | 70 | flag_reception_CAN = 0 ; |
| ares1999 | 2:c7f2e7d8b305 | 71 | |
| ares1999 | 2:c7f2e7d8b305 | 72 | } |
| ares1999 | 2:c7f2e7d8b305 | 73 | |
| ares1999 | 2:c7f2e7d8b305 | 74 | void Envoi_msg_CAN(char donnee) |
| ares1999 | 2:c7f2e7d8b305 | 75 | { |
| ares1999 | 2:c7f2e7d8b305 | 76 | CANMessage message; |
| ares1999 | 2:c7f2e7d8b305 | 77 | message.id = 0x220; |
| ares1999 | 2:c7f2e7d8b305 | 78 | message.len=1; |
| ares1999 | 2:c7f2e7d8b305 | 79 | message.format=CANStandard; |
| ares1999 | 2:c7f2e7d8b305 | 80 | message.type=CANData; |
| ares1999 | 2:c7f2e7d8b305 | 81 | message.data[0]=donnee; |
| ares1999 | 2:c7f2e7d8b305 | 82 | |
| ares1999 | 2:c7f2e7d8b305 | 83 | bus_can.write(message); |
| ares1999 | 2:c7f2e7d8b305 | 84 | } |