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);
//-----------------
/*
* 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);
//-----------------