Сообщение от Gladkih
|
не замечал такой проблемы. возможно что это связано со временем на зарядку конденсатора.
|
Тоже так думаю. Но.
Сообщение от realid
|
Попробуйте увеличить Tad.
|
Не помогает.
Сообщение от st_1
|
Неплохо бы огласить камень и еррату почитать.
|
PIC24FJ64GA004
Написано на бейсике (интерпретёре МастерКитовском)
new
10 AD1CON1=320H
11 AD1CON2=322H
12 AD1CON3=324H
13 AD1PCFG=32CH
14 AD1CSSL=330H
15 IFS0=084H
16 AD1CHS=328H
17 TRISB=02C8H
18 TRISC=02D0H
; AN8,AN9,AN11 - аналоговые входы, остальные цифровые 1111010011111111
20 REGW(AD1PCFG)=0F4FFH
;Сканирование выводов AN8,9,11 101100000000
30 REGW(AD1CSSL)=0B00H
;Запуск преобразования по внутреннему счетчику
35 REGW(AD1CON1)=00E0H
;RC2,RB13,RB15 (выводы AN9-AN10) - входы 10100000 00000000
40 REGB2(TRISC)=1
44 REGBD(TRISB)=1,0,1
;установка вывода Sample time = 15Tad, Tad = Tcy/2 0001 00000000
50 REGW(AD1CON3)=0F00H
;разрешение сканирования Прерывание после сканирования 3 выводов, 10000001000
60 REGW(AD1CON2)=408H
;разрешение АЦ-преобразования 10000000 00000000
70 REGBF(AD1CON1)=1
;Начало цикла, установка указателя на начало буфера результата
100 ADC1BUF=300H
;сброс флага прерывания 11011111 11111111
110 REGBD(IFS0)=0
;запуск сканирования
120 REGB2(AD1CON1)=1
;ожидание прерывания (происходит после 3 циклов АЦП)
130 DO
140 UNTIL REGBD(IFS0)
;запрет сканирования
150 REGB2(AD1CON1)=0
;выдача результатов на печать
160 FOR I=1 TO 3
170 PRINT U.(#.##),REGW(ADC1BUF)*(3.3/1024),
180 ADC1BUF=ADC1BUF+2
190 NEXT I
200 PRINT
;переход на следующий цикл
210 GOTO 100
220 END