Étape 2: codage :
J’ai fait le codage pour ce projet à l’aide de logiciel de code composer studio. ici je vous présente le codage pour msp430g2231.
#include « msp430.h »
#define ADC_CHANNELS 2
unsigned int échantillons [ADC_CHANNELS] ;
#define LED1 bits4
#define LED2 BIT6
#define SENSOR_LEFT BIT0
#define SENSOR_GND BIT2
#define SENSOR_RIGHT BIT1
#define SENSOR_GND1 BIT3
#define RED_LED LED1
#define GRN_LED LED2
void ConfigureAdc(void) {}
ADC10CTL1 = INCH_1 | ADC10DIV_0 | CONSEQ_3 | SHS_0 ;
ADC10CTL0 = SREF_0 | ADC10SHT_2 | MSC | ADC10ON | ADC10IE ;
ADC10AE0 = SENSOR_LEFT + SENSOR_RIGHT ;
ADC10DTC1 = ADC_CHANNELS ;
}
void main (void) {}
WDTCTL = WDTPW | WDTHOLD ;
BCSCTL1 = CALBC1_1MHZ ;
DCOCTL = CALDCO_1MHZ ;
BCSCTL2 & = ~ (DIVS_3) ;
P1DIR = 0 ; / * définir comme entrées * /
P1SEL = 0 ; / * définir comme des e/s numérique * /
P1OUT = 0 ; / * la valeur de résistances comme pull-down * /
P1REN = 0XFF ; / * activer le menu déroulant résistances * /
P2DIR = 0 ; / * définir comme entrées * /
P2SEL = 0 ; / * définir comme des e/s numérique * /
P2OUT = 0 ; / * la valeur de résistances comme pull-down * /
P2REN = 0XFF ; / * activer le menu déroulant résistances * /
P1REN & = ~(LED1 | LED2) ; / * désactiver pull-up/bas * /
P1DIR | = (LED1 | LED2) ; / * configure comme oututs * /
P1REN & = ~(SENSOR_GND | SENSOR_GND1) ; / * désactiver pull-up/down * /
P1OUT & = ~ (SENSOR_GND| SENSOR_GND) ; / * SENSOR_GND doit être au GND * /
P1DIR | = (SENSOR_GND | SENSOR_GND1) ; / * SENSOR_GND doit être une sortie * /
P1REN | = (SENSOR_LEFT| SENSOR_RIGHT) ; / * activer pull-up sur capteur * /
P1IN | = (SENSOR_LEFT| SENSOR_RIGHT) ; / * résistance réglée comme pull-up * /
ConfigureAdc() ;
__enable_interrupt() ;
tandis que (1) {}
__delay_cycles(1000) ;
ADC10CTL0 & = ~ ENC ;
tandis que (ADC10CTL1 & BUSY) ;
ADC10SA = (unsigned int) échantillons ;
ADC10CTL0 | = ENC + ADC10SC ;
__bis_SR_register (CPUOFF + GIE) ;
Si (échantillons [0] < samples[1]) {}
P1OUT | = RED_LED ;
P1OUT & = ~ (GRN_LED) ;
} ElseIf (échantillons [0] == {samples[1])}
P1OUT & = ~ (RED_LED) ;
P1OUT & = ~ (GRN_LED) ;
} else {}
P1OUT | = GRN_LED ;
P1OUT & = ~ (RED_LED) ;
}
}
}
#pragma vecteur = ADC10_VECTOR
__interrupt void ADC10_ISR (void) {}
__bic_SR_register_on_exit(CPUOFF) ;
}
Merci d’avoir regarder