Carte esclave gros robot
Dependencies: mbed Herkulex_Library_2019 ident_crac actions_Pr
Diff: main.cpp
- Revision:
- 52:c019890fbc59
- Parent:
- 51:ecbdff4587ce
- Child:
- 53:b7d2682fba44
--- a/main.cpp Mon May 10 09:12:00 2021 +0000 +++ b/main.cpp Tue May 18 10:05:06 2021 +0000 @@ -13,6 +13,7 @@ unsigned char EtatGameEnd=0, EtatGameStart = 0, EtatGameRecalage = 0; unsigned short ackFinAction = 0; char bras_choix=0; +void initialisation_CAN (void) ; void canProcessRx(void); @@ -32,6 +33,7 @@ int main() { can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN + SendRawId(ALIVE_ACTIONNEURS_AVANT); servo_interrupt_en(); //permettre les interuptions wait_ms(200); deverouillage_torque(); @@ -44,17 +46,24 @@ gabarit_robot_manche(); wait(1); //DigitalIn cap2(PC_14); + SendRawId(CHECK_ACTIONNEURS_AVANT); while(1) { canProcessRx(); f_mesure();//dt35 + selection_bras_attraper(); + selection_bras_relacher(); + automate_manche_air_haut() ; + automate_manche_air_bas() ; + /* automate_bras_attraper_1(); automate_bras_relacher_1(); automate_bras_attraper_2(); automate_bras_relacher_2(); automate_bras_attraper_3(); automate_bras_relacher_3(); + */ //automate_manche_air() ; /*automate_position_lidar();*/ } @@ -199,6 +208,18 @@ case TEST_BRAS_6: break; ////////////////////////////////////////////CASE DE COMPETITIONS///////////////////////////////////////////// + case BRAS_AT: + SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); + bras_choix = msgRxBuffer[FIFO_lecture].data[0]; + aut_bras_av_at = 1; + break; + + case BRAS_RE: + SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); + bras_choix = msgRxBuffer[FIFO_lecture].data[0]; + aut_bras_av_re = 1; + break; +/* case BRAS_AT_1: SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); bras_choix = msgRxBuffer[FIFO_lecture].data[0]; @@ -234,7 +255,7 @@ bras_choix = msgRxBuffer[FIFO_lecture].data[0]; aut_bras_av_3_re = 1; break; - +*/ case GABARIT_ROBOT: SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); gabarit_robot_droit(); @@ -242,14 +263,16 @@ SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION); break; - case AUTOMATE_MANCHE_LEVER: + case AUTOMATE_MANCHE_HAUT: SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); - flag_manche_a_air = 1; + bras_choix = msgRxBuffer[FIFO_lecture].data[0]; + aut_manche_haut = 1; break; - case AUTOMATE_MANCHE_BAISSER: + case AUTOMATE_MANCHE_BAS: SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION); - flag_manche_a_air = 0; + bras_choix = msgRxBuffer[FIFO_lecture].data[0]; + aut_manche_bas = 1; break; default: @@ -257,4 +280,16 @@ } FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO; } +} + +void initialisation_CAN(void) +{ + CANMessage msg_init; + msg_init.id = CHECK_ACTIONNEURS_AVANT; + msg_init.len=1; + msg_init.format=CANStandard; + msg_init.type=CANData; + msg_init.data[0]= 0 ; + + can.write(msg_init); } \ No newline at end of file