Stap 2: codering:
Ik heb de taalcode-instellingen voor dit project met behulp van code componist studio software. Hier presenteer ik de codering voor msp430g2231.
#include "msp430.h"
#define ADC_CHANNELS 2
unsigned int monsters [ADC_CHANNELS];
#define LED1 BIT4
#define LED2 BIT6
#define SENSOR_LEFT BIT0
#define SENSOR_GND BIT2
#define SENSOR_RIGHT bits1
#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;
}
ongeldig main(void) {}
WDTCTL = WDTPW | WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
BCSCTL2 & = ~ (DIVS_3);
P1DIR = 0; / * instellen als input * /
P1SEL = 0; / * instellen als digitale invoer/uitvoerbewerkingen * /
P1OUT = 0; / * weerstanden ingesteld als pull-downs * /
P1REN = 0XFF; / * inschakelen pull-down weerstanden * /
P2DIR = 0; / * instellen als input * /
P2SEL = 0; / * instellen als digitale invoer/uitvoerbewerkingen * /
P2OUT = 0; / * weerstanden ingesteld als pull-downs * /
P2REN = 0XFF; / * inschakelen pull-down weerstanden * /
P1REN & ~(LED1 | = LED2); / * pull-tabs-opwaarts/downs uitschakelen * /
P1DIR | = (LED1 | LED2); / * configureren als oututs * /
P1REN & ~(SENSOR_GND | = SENSOR_GND1); / * pull-tabs-omhoog/omlaag uitschakelen * /
P1OUT & = ~ (SENSOR_GND| SENSOR_GND); / * SENSOR_GND moet op de GND * /
P1DIR | = (SENSOR_GND | SENSOR_GND1); / * SENSOR_GND moet een output * /
P1REN | = (SENSOR_LEFT| SENSOR_RIGHT); / * inschakelen pull-up op SENSOR * /
P1IN | = (SENSOR_LEFT| SENSOR_RIGHT); / * Stel weerstand als pull-up * /
ConfigureAdc();
__enable_interrupt();
terwijl (1) {}
__delay_cycles(1000);
ADC10CTL0 & = ~ ENC;
terwijl (ADC10CTL1 & bezet);
ADC10SA = (unsigned int) monsters;
ADC10CTL0 | = ENC + ADC10SC;
__bis_SR_register (CPUOFF + GIE);
Als (monsters [0] < samples[1]) {}
P1OUT | = RED_LED;
P1OUT & = ~ (GRN_LED);
} else if (monsters [0] == samples[1]) {}
P1OUT & = ~ (RED_LED);
P1OUT & = ~ (GRN_LED);
} else {}
P1OUT | = GRN_LED;
P1OUT & = ~ (RED_LED);
}
}
}
#pragma vector = ADC10_VECTOR
void ADC10_ISR (void) {} __interrupt
__bic_SR_register_on_exit(CPUOFF);
}
Dank u voor het bekijken van