Свежие обсуждения
Микроконтроллеры

PIC12F675

Появилось очень срочное задание: написать программу под PIC12F675.
Первое, с чем ястолкнулся, так это с отсуствием в комплекте моего MPLabs файла PIC12F675.inc, он также отсуствует в списке поддерживаемых МК при эмуляции. Частично я решил проблему, временно указав 12CE674, но это не выход. Может у кого есть этот файлик?

Второе. Столкнулся с с проблемой в оперировании 10-разрдными числами.
Необходимо взять разность между двумя 10-разрядными числями:
ADCmL,ADCmH и ADCL,ADCH (смещенние вправо, но могу сделать и влево)
Вот как это сделать, не приходит на ум.
Вообще меня интересуют такие условия:
результат: по модулю больше 4h или меньше 4h (возможно будет увеличенно с 4 до 8)
результат: больше нуля, меньше нуля, равно нулю.

 

Еще я хотел уточнить подробности при работе с АЦП (это мой первый опыт).
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

 

Ну... скажите, хоть что-нибудь