Еще я хотел уточнить подробности при работе с АЦП (это мой первый опыт). 1. Не совсем понял, как правильно установить бит (режим) "CONVERSION CLOCK". Там предлагают: • FOSC/2 • FOSC/4 • FOSC/8 • FOSC/16 • FOSC/32 • FOSC/64 • FRC (dedicated internal RC oscillator) 2. Не совсем понял, нужна ли задержка, после того как бит "GO/DONE" сбрасывается аппаратно, перед чтением содержимого регистроа АЦП? цитата: The ADRESH:ADRESL registers will not be updated with the partially complete A/D conversion sample. Instead, the ADRESH:ADRESL registers will retain the value of the previous conversion. After an aborted conversion, a 2 TAD delay is required before another acquisition can be initiated. Following the delay, an input acquisition is automatically started on the selected channel. для "понятности" прилагаю страницы документации по разделу АЦП В своей программе, работу с АЦП я выполняю так: LIST p=12CE674 #include "P12CE674.INC" ... ; недостающие регистры для pic12f675!!! CMCON equ 19h ANSEL equ 9Fh ADRESH equ 1Eh ADRESL equ 9Eh ... ADCL equ 21h ; Регистр АЦП, ниж. ADCH equ 22h ; Регистр АЦП, верхн. .... ; Инициализация АЦП movlw b'00000001' movwf ANSEL ; AN0=Analog input movlw b'00000001' movwf ADCON0 ; AN0=вход АЦП ... call ReadADC ... ;********************************************************************** ; Функция чтения данных из АЦП ;********************************************************************** ReadADC ; Запуск АЦП bsf ADCON0,1 ; Запуск преобразования АЦП btfsc ADCON0,1 ; Ожидание окончания преобразования goto $-1 nop ; Пауза на окончание преобразования nop nop nop ; Чтение из АЦП movf ADRESH,W movwf ADCH bsf STATUS,RP0 ; Банк 1 movf ADRESL,W bcf STATUS,RP0 ; Банк 0 movwf ADCL return P.S. Можно ли откомпилировать прошивку для PIC12F675 установив в настройках MPLabs P12CE674 (регистры вроди совпадают, но не все в нем есть) 41044.djvu |