|
檢測的是有運放后的光敏二極管的信號,代碼如下,是晶振的原因嗎,還是其他,我用萬用表測是不變的,ad卻是亂變
- #include "MSP430g2553.h"
- void main(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // Stop WDT
- // ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
- ADC10CTL0|=ADC10ON+ADC10IE+REFON+REF2_5V+SREF_1+MSC+ADC10SHT_2;
- // ADC10CTL0 = ADC10SHT_2 + ADC10ON ; // ADC10ON, interrupt enabled
- //ADC10CTL0=REF2_5V+REFON;
- ADC10CTL1 = INCH_1; // input A1
- ADC10AE0 |= 0x02; // PA.1 ADC option select
- P1DIR |= 0x01; // Set P1.0 to output direction
- P1DIR |=BIT6;
- P1DIR |=BIT3;
- P1OUT &= ~0x01;
- P1OUT |=BIT6;
- P1OUT |=BIT3;
- while(1)
- {
- ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
- __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit
- if (ADC10MEM >500)
- {
- P1OUT |= 0x01; // Clear P1.0 LED ON
- P1OUT |=BIT6;
- break;
- }
-
- else
- {
- P1OUT &=~BIT6;
- P1OUT &= ~0x01; // Set P1.0 LED OFF
- }
- }
- }
- //ADC10 interrupt service routine
- #pragma vector=ADC10_VECTOR
- __interrupt void ADC10_ISR(void)
- {
- __bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
- }
復制代碼
|
|