ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
140349
MegaJohn (28.11.2008 16:19, просмотров: 17731)
Прерывание АЦП. Имею MSP430F2132 (или он меня). Конфигурирую АЦП в режиме Single-Channel Single-Conversion Mode. Прерывания выполняются, но не выделяется время на фоновую задачу. То есть в фоне стоит while( true ) P1OUT ^= (1 << 1 ); а в ADC10_VECTO P1OUT ^= (1 << 0 ); По пину 0 вижу осциллом меандр, а по пину 1 нет ! Поможите, а то с MSP430 дело только начинаю иметь. иннициализация void adc_init (void) { ADC10CTL0 = 0; // SREFx = 000 (Select reference = VR+ = VCC and VR. = VSS ) // ADC10SHTx = 00 ( sample-and-hold time = 4 x ADC10CLKs ) // ADC10SR = 0 ( sampling rate = Reference buffer supports up to ~200 ksps ) // REFOUT = 0 ( Reference output off ) // REFBURST = 0 ( Reference buffer on continuously ) // MSC = 0 ( Multiple sample and conversion = sampling requires a rising edge ) // REF2_5V = 0 ( Reference-generator voltage = 1.5 V) // REFON = 0 ( Reference off ) // ADC10ON = 0 ( ADC10 off ) // ADC10IE = 0 ( interrupt disabled ) // ADC10IFG = 0 ( No interrupt pending ) // ENC = 0 ( Enable conversion = disabled ) // ADC10SC = 0 ( Start conversion = No sample-and-conversion start ) ADC10CTL0 |= ADC10ON + ADC10SR + ADC10IE; ADC10CTL0 |= ADC10SHT_3 + MSC; ADC10CTL1 = INCH2 | INCH1 | INCH0 ; // INCHx = 7 ( select mux input = A7 ) // SHSx = 0 ( Sample-and-hold source select = ADC10SC bit ) // ADC10DF = 0 ( data format = Straight binary ) // ISSH = 0 ( The sample-input signal is not inverted ) // ADC10DIVx = 0 ( clock divider = 1 ) // ADC10SSELx = 0 ( clock source select = ADC10OSC ) // CONSEQx = 0 ( Repeat-single-channel ) // ADC10BUSY = 0 ( No operation is active ) ADC10CTL1 |= ADC10DIV2 | ADC10DIV1 | ADC10DIV0; ADC10AE0 |= (1 << 7 ); // разрешить аналоговый вход на А7 ADC10CTL0 |= ADC10SC + ENC; // Enable conversion } прерывание #pragma vector=ADC10_VECTOR __interrupt void ADC_interrupt( void ) { ADC10CTL0 |= ADC10SC + ENC; // Enable conversion // ADC10CTL0 &= ~ADC10IFG; эта строчка согласно ДШ не нужна P1OUT ^= (1 << 0); }