Bonjour a tous,Code:#define LED_IR_HAUT PORTC.F0 #define LED_IR_BAS PORTC.F1 #define PUSH PORTC.F7 #define BUZZER PORTD.F7 #define MOTEUR_GAUCHE1 PORTA.F0 #define MOTEUR_GAUCHE2 PORTA.F1 #define MOTEUR_DROIT1 PORTA.F2 #define MOTEUR_DROIT2 PORTA.F3 #define LED_AV PORTE.F1 #define LED_ARR PORTE.F2 //*********** Prototype des fonctions ************* void init(); void Detection_Obstacle(); void Detection_Vide(); //*********** Programme Principal ************* int main(){ TRISC=1; PORTC=0; TRISD.F7=0; PORTD.F7=0; TRISE=0; PORTE=0; TRISA=0; PORTA=0; // Boucle Infinie while(1){ Init(); if(LED_IR_HAUT==1){ // Détection obstacle Detection_Obstacle(); } else if(LED_IR_BAS==1){ // Détection dans le vide Detection_Vide(); } } } //*********** Fonctions ************* void Init(){ if(PUSH==1){ PORTA=0x05; // BINAIRE>> 0b000101 PORTE=0x02; // BINAIRE>> 0b010 } } void Detection_Obstacle(){ MOTEUR_GAUCHE2=1; // Moteur de gauche en marche, Moteur de droit arrêté, delay_ms(1500); MOTEUR_GAUCHE2=0; } void Detection_Vide(){ PORTA=0x00; // Arrêt du robot PORTE=0x00; delay_ms(1500); // Pause PORTA=0x0A; // Marche en Arriére des deux moteurs BINAIRE>> 0b001010 PORTE=0x01; // Led arriere allumée, Led avant éteinte BINAIRE>> 0b001010 delay_ms(1500); // Pause PORTE=0x00; // Led avant et arrière éteinte PORTA=0x00; // Arrêt des deux moteurs delay_ms(500); // Pause PORTA=0x08; // Marche en arriere du moteur gauche BINAIRE>> 0b001000 delay_ms(1500); // Pause PORTA=0x00; // Arret du robot delay_ms(500); // Pause PORTE=0x02; // Led Avant allumée BINAIRE>> 0b010 PORTA=0x05; // Marche des moteurs en avant BINAIRE>> 0b000101 }
j'ai copié un programme pour un robot qui detecte un obstacle en Langaage C
CA MARCHE en simulation avec le schéma que j'ai adapté mais je voudrais l'améliorer et comprendre certains points car je ss débutant en C pourquoi il y a deux écriture, hexadécimal et binaire dans le code, ou c'est ecrit BINAIRE>> 0b001010 ca veut dire que c'est 0x0A en binaire? pourquoi ne pas avoir mis le nombre binaire directement? quelle est la différence dans le code? l'hexa prend moins de place en mémoire?
Et puis en haut le prototype des fonctions, a quoi ca sert de les mettre? car si je les enleve le code ne compile plus?
-----