Hallo Freunde, ich habe ein Problem mit dem ADC. Was möchte ich machen: Ich will eine Gruppe von ADC Eingängen in einem bestimmten Zeitintervall abfragen. Grundsätzlicvh habe ich das Ding laufen aber nicht so wie ich es will habe schon viel gelesen und auch nach dem Microchip Example versucht.Ja er liest die Werte ein aber in einem nicht nachvollziebaren Zeitintervall. Egal was ich einstelle. Z.B. start durch Timer, Timer ist auf 2ms tatsächlich liest er einen Burst 1 MS lang und macht dann 11ms Pause. Hat da jemand Erfahrung und kann mir weiterhelfn, kann doch nicht so schwer sein. lg Hansp PS.: ich habe einen PIC aus der PIC24FJ Family
Alle 16 channels automatisch und dann gemütlich alle paar ms die Werte aus dem ADC buffer auslesen und filter und was auch immer so z.B. initialisieren -
1 | // turn of ADC
|
2 | AD1CON1bits.ADON = 0; |
3 | |
4 | // configure pins as analog inputs (all 16 channels)
|
5 | AD1PCFGL = 0x00; |
6 | // disable band gab channels in scan
|
7 | AD1PCFGH = 0x00; |
8 | |
9 | // init ADC
|
10 | OpenADC10( ADC_MODULE_ON | // Adcon1 /* A/D Converter on */ |
11 | ADC_IDLE_CONTINUE | /* A/D Operate in Idle mode */ |
12 | ADC_FORMAT_INTG | /* A/D data format integer */ |
13 | ADC_CLK_AUTO | /* Internal counter ends sampling and starts conversion (Auto convert) */ |
14 | ADC_AUTO_SAMPLING_ON | /* Sampling begins immediately after last conversion */ |
15 | ADC_SAMP_ON /* sample / hold amplifiers are sampling */ |
16 | ,
|
17 | ADC_VREF_AVDD_AVSS | // Adcon2 /* A/D Voltage reference configuration Vref+ is AVdd and Vref- is AVss */ |
18 | ADC_SCAN_ON | /* A/D Scan Input Selections for CH0 during SAMPLE A */ |
19 | ADC_INTR_16_CONV | /* Interrupts at the completion of conversion of 16 samples */ |
20 | ADC_ALT_BUF_OFF | /* Buffer configured as 1 16-word buffer */ |
21 | ADC_ALT_INPUT_OFF /* use MUXA only */ |
22 | ,
|
23 | ADC_SAMPLE_TIME_10 | // Adcon3 /* A/D Auto Sample Time 10 Tad */ |
24 | // 55us with 4MHz FCY and CLK_11Tcy
|
25 | ADC_CONV_CLK_SYSTEM | /* Clock derived from system clock */ |
26 | ADC_CONV_CLK_11Tcy /* A/D Conversion Clock is 11*Tcy */ |
27 | // 365kHz - 2.75us, 10 clk for sample and 12 clk for conversion = 22 clk
|
28 | // x 16 channels = 352 clk = 0.968ms, for all 16 channels
|
29 | ,
|
30 | ENABLE_ALL_ANA_0_15 // PinConfig |
31 | ,
|
32 | ENABLE_ALL_INPUT_SCAN // Scanselect |
33 | );
|
:
Bearbeitet durch User
Hallo Andi, danke für die Antwort, bin erst jetzt wieder dazu gekommen mich damit zu beschäftigen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.