Протеус пишет: "АЦП запущен до того как истекло время предыдущего преобразования", хотя задержка есть после каждого цикла. Выкладываю проект, протеус и прошивку. Подскажите какую мелочь забыл.
Код: Выделить всё
;*******************************************************************
;Задача данной программы - тест АЦП ПИК12Ф683. AN3(GP4) - вход АЦП.
;*******************************************************************
list p=12F683
#include "P12F683.inc"
;конфиг: собачка выкл, синхронизация от внутреннего РС генератора.
__CONFIG _FCMEN_OFF & _IESO_OFF & _BOD_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTOSCIO
;______________________
;переменные
delcntrl equ 22
delcntr2 equ 23
beskavozhe equ 24
led_count equ 25
knopka equ 26
led_status equ 27
green_led equ GP0
red_led equ GP1
blue_led equ GP2
knopo equ GP3
ADC_low equ 28
ADC_high equ 29
ADC_cnt equ 30
stack equ 31
;______________________
org 0x00
goto init; при вкл. выполнить настройку
org 0x04;вектор обработки прерываний
btfsc PIR1, ADIF;флаг установлен?
goto ADC; обработать прерывание
retfie
;прерывание АЦП
ADC
banksel PIR1
bcf PIR1, ADIF;сбросить флаг прерывания АЦП
banksel ADRESH
movf ADRESH,0;считать старшие биты(2)
movfw ADC_high
banksel ADRESL
movf ADRESL,0;считать младшие биты(8)
movwf ADC_low
call delay_2Td; задержка перед след. преобразованием
banksel ADCON0
bsf ADCON0, GO;запустить АЦП на новое преобразование
retfie;конец прерывания АЦП
;***********блок инициализации
org 0x200
init
;синхр: внутр РС-герератор. частота=1МГц
banksel OSCCON
movlw b'01000001'
movwf OSCCON
;внутр. подтяжка выкл,
banksel OPTION_REG
movlw b'10000000'
movwf OPTION_REG
;Установить GP4 как вход.
banksel TRISIO
movlw b'00010000'
movwf TRISIO
banksel GPIO
movlw b'00000000'
movwf GPIO
;синхронизация АЦП от внутр. РС-генератора, AN3(GP4) - аналоговый вход
banksel ANSEL
movlw b'01111000'
movwf ANSEL
;Разрешить глобальные прерывания, разрешить прерывания периферии.
banksel INTCON
bsf INTCON,GIE
bsf INTCON,PEIE
;Разрешить прерывание АЦП
banksel PIE1
movlw b'01000000'
movwf PIE1
;Сдвиг 10-битного результата вправо,напряжение смещения АЦП=питание,
;мультиплескор:AN3, вкл АЦП, запустить преобразование
banksel ADCON0
movlw b'10001101'
movwf ADCON0
bsf ADCON0,GO
;конец иницилизации
;*****************************основной цикл
main
goto main
delay_2Td
movlw 0x0F
movwf ADC_cnt
minus
decfsz ADC_cnt
goto minus
return
end


