[ mnn @ 21.11.2013. 20:59 ] @
Treba da očitam 6 analognih ulaza na Pic32 i nikako mi ne uspeva da očitam više od dva ulaza.Probao ovo ,ono... i nikako mi ne ide .Gledao na netu primere i svi su manje više isti ,ali kod mene ne ide. Evo i dela koda pa možda neko vidi što ja ne vidim ili ne znam. Code: /* * in_1 RB3/AN5 * in_2 RB2/AN4 * in_3 RB1/AN3 * in_4 RB0/AN2 * in_5 RA1/AN1 * in_6 RA0/AN0 */ //--------------------------------------------- mPORTBSetPinsAnalogIn(BIT_0 | BIT_1 | BIT_2 | BIT_3); mPORTASetPinsAnalogIn(BIT_0 | BIT_1); // ------------------------------------------------------- // define setup parameters for OpenADC10 // Turn module on | ouput in integer | trigger mode auto | enable autosample #define PARAM1 ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON // define setup parameters for OpenADC10 / / ADC ref external | disable offset test | disable scan mode | perform 2 samples | use dual buffers | use alternate mode #define PARAM2 ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_OFF | ADC_SAMPLES_PER_INT_2 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_ON // define setup parameters for OpenADC10 //use ADC internal clock | set sample time #define PARAM3 ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_15 // define setup parameters for OpenADC10 // #define CONFIGPORT ENABLE_AN0_ANA|ENABLE_AN1_ANA|ENABLE_AN2_ANA|ENABLE_AN3_ANA|ENABLE_AN4_ANA|ENABLE_AN5_ANA #define CONFIGSCAN SKIP_SCAN_AN7|SKIP_SCAN_AN8|SKIP_SCAN_AN9|SKIP_SCAN_AN10|SKIP_SCAN_AN11|SKIP_SCAN_AN12 CloseADC10(); // Ensure the ADC is off before setting the configuration SetChanADC10(ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN0 | ADC_CH0_NEG_SAMPLEB_NVREF | ADC_CH0_POS_SAMPLEB_AN1 | ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN2 | ADC_CH0_NEG_SAMPLEB_NVREF | ADC_CH0_POS_SAMPLEB_AN3| ADC_CH0_NEG_SAMPLEA_NVREF | ADC_CH0_POS_SAMPLEA_AN4 | ADC_CH0_NEG_SAMPLEB_NVREF | ADC_CH0_POS_SAMPLEB_AN5); //---------------------------------------------------------- OpenADC10(PARAM1, PARAM2, PARAM3, CONFIGPORT, CONFIGSCAN); // configure ADC using the parameters defined above // enable multi-vector interrupts INTEnableSystemMultiVectoredInt(); EnableADC10(); // Enable the ADC while (1) { mPORTBSetBits(BIT_5); while (i--); while (!mAD1GetIntFlag()) { // wait for the first conversion to complete so there will be vaild data in ADC result registers } offset = 8 * ((~ReadActiveBufferADC10() & 0x01)); value[1] = ReadADC10(offset); value[2] = ReadADC10(offset + 1); value[3] = ReadADC10(offset + 2); value[4] = ReadADC10(offset + 3); value[5] = ReadADC10(offset + 4); value[6] = ReadADC10(offset + 5); mAD1ClearIntFlag(); mPORTBClearBits(BIT_5); //----------------- |