21.12.2012, 19:54
|
|
Заблокирован
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
|
P16F1827 АЦП не запускается от ССР
Mplab 8.88, Proteus 7.10SP0. Нижепревиденный код не работает в Mplab, работает в Proteus. Что не так с Mplab?
Код:
|
list p = 16f1827
INCLUDE P16F1827.INC
;*** Переменные ******************************************
CBLOCK 0x20 ; Начальный адрес блока пользовательской памяти
ENDC
;**** Константы ************************
;************************************************* ********
org 0
GOTO start
;*** Обработчик прерываний ******************************************
org 4
banksel PIR1
btfss PIR1,ADIF
RETFIE
movlw 1
xorwf PORTB
bcf PIR1,ADIF
RETFIE
;*** Старт ************************************
start
banksel PIE1
movlw b'01000000'
movwf PIE1
banksel ADCON1
movlw b'10110011'
movwf ADCON1
banksel ADCON0
movlw b'00000101'
movwf ADCON0
banksel T1CON
movlw b'00110001'
movwf T1CON
banksel CCPR4H
movlw h'0f'
movwf CCPR4H
banksel CCPR4L
movlw 0
movwf CCPR4L
banksel CCP4CON
movlw b'00001011'
movwf CCP4CON
banksel INTCON
movlw b'11000000'
movwf INTCON
banksel TRISB
movlw 0
movwf TRISB
INFLOOP
CLRWDT
GOTO INFLOOP
end |
|
|
|
|
22.12.2012, 14:49
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
А источник референсного напряжения кто будет включать? Регистр FVRCON
В протеусе "работает" потому, что при запуске симуляции протеус не очищает регистры (как и в действительности в железе), поэтому в регистрах результата че-то есть. Но зато внизу в строке сообщений появляется куча предупреждений о неправильной установке референсного напряжения.
Ну а мплаб при запуске очищает все регистры, а это неправильно.
Поэтому создается впечатление, что в протеусе работает, а в мплабе - нет. Хотя, и там, и там - все одинаково не работает.
Последний раз редактировалось Алекс Василич; 22.12.2012 в 15:08.
|
|
|
|
22.12.2012, 15:03
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Алекс Василич, рановато вам пока за контроллеры хвататься. Не нужно трогать FVR, если не собираетесь его использовать. По дефолту в качестве верхнего опорного используется VDD. Более того, даже пример использования АЦП на ассемблере приведен в даташите. Никакого FVRCON там нет.
Автор хочет запустить преобразование по триггеру с CCP. Для этого надо использовать SPECIAL EVENT TRIGGER. Вся эта информация тоже есть в даташите. Я не горю особым желанием это разжевывать.
|
|
|
|
22.12.2012, 15:39
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Easyrider83, рановато вам переходить на PIC-и с STM-ов, а тем более, писать на ассемблере. Ибо ассемблер - он для людей думающих и хорошо знающих "железную" чатсть. Эт вам не Си, где компилятор незаметно от вас подключит все, что нужно.
Тщательнее мануальчики читать надобно то в плане всяких регистров.
Поинтересуйся, что делают биты ADPREF‹1:0›и что там у автора.
..
Последний раз редактировалось Алекс Василич; 23.12.2012 в 12:26.
|
|
|
|
22.12.2012, 16:01
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Еще возражения у "продвинутых юзеров" типа Изиридера есть?
|
|
|
|
22.12.2012, 16:46
|
|
Заблокирован
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Устанавливаю FVRCON=10000101 и ничего не меняется, кроме отсутствия предупреждения в протеусе. Мне сейчас не важно что выдаст АЦП. Важно разобраться почему MPlab работает неправильно. Поэтому программа самая примитивная.
|
|
|
|
22.12.2012, 17:16
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Смотрим DS внимательно.
|
|
|
|
22.12.2012, 18:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
А вообще, "MPLAB SIM - beta support" для этого камня ( Mplab 8.88 ).
Так что гарантировать ни чего нельзя.
|
|
|
|
25.12.2012, 09:13
|
|
Заблокирован
Регистрация: 22.04.2010
Сообщений: 348
Сказал спасибо: 41
Сказали Спасибо 106 раз(а) в 95 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Новый тест:
RA5 - источник тактирования таймера 1: 0 -INTOSC/4, 1 - кварц 32768Гц
RB1 - используемый CCP: 0 - CCP1, 1 - CCP4
Код:
|
list p = 16f1827
INCLUDE P16F1827.INC
__CONFIG _CONFIG1,B'0111110011100'
__CONFIG _CONFIG2,B'1101011111111'
org 0
GOTO start
;*** Обработчик прерываний ******************************************
org 4
banksel PIR1
btfss PIR1,ADIF
RETFIE
movlw H'80'
xorwf PORTA
bcf PIR1,ADIF
RETFIE
;*** Старт ************************************
start
banksel OPTION_REG
movlw b'00001111'
movwf OPTION_REG
movlw b'01111111'
movwf TRISA
movlw b'11000110'
movwf TRISB
banksel PIE1
movlw b'01000000'
movwf PIE1
banksel FVRCON
movlw b'10000101' ;Источник опорного напряжения вкл, 1.024V на АЦП и ЦАП
movwf FVRCON
banksel ADCON1
movlw b'10110011'
movwf ADCON1
banksel ADCON0
movlw b'00000101'
movwf ADCON0
banksel ANSELB
clrf ANSELB
banksel PORTB
;RA5=0 - T1 INTOSC/4, RA5=1 - T1 T1OSC 32768
BTFSC PORTA,5
bra L_T1OSC
banksel T1CON
movlw b'00110101'
movwf T1CON
bra L_INITCCP
L_T1OSC
banksel T1CON
movlw b'10001101'
movwf T1CON
;RB1=0 - CCP1, RB1=1 - CCP4
L_INITCCP
BTFSC PORTB,1
bra L_CCP4
banksel CCPR1H
movlw h'0f'
movwf CCPR1H
banksel CCPR1L
movlw 0
movwf CCPR1L
banksel CCP1CON
movlw b'00001011'
movwf CCP1CON
bra L1
L_CCP4
banksel CCPR4H
movlw h'0f'
movwf CCPR4H
banksel CCPR4L
movlw 0
movwf CCPR4L
banksel CCP4CON
movlw b'00001011'
movwf CCP4CON
L1
banksel INTCON
movlw b'11000000'
movwf INTCON
INFLOOP
CLRWDT
GOTO INFLOOP
end |
Симуляция в MPLAB 8.88 не работает при любых RA5,RB1
Симуляция в Proteus 7.10SP0 работает только при RA5=0,RB1=1. Proteus не симулирует кварц на T1OSI,T1OSO.
Железо работает при RB1=1 и любых RA5.
Поскольку T1OSI,T1OSO совмещены с ICSPCLK, ICSPDAT, кварц подключен через перемычки. Что интересно при RA5=1 и снятых перемычках генератор тоже работает, только частота заметно меньше 32768Гц и плавает.
Вопрос: как программно обнаруживать неполадки с этим кварцем?
|
|
|
|
25.12.2012, 12:08
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: P16F1827 АЦП не запускается от ССР
Протеус нормально симмулирует T1OSI. Надо просто вместо кварца подключить генерататор на частоту кварца. И все будет симмулироваться.
Я делаю так - вешаю кварц, в свойствах ставлю галочку "не симмулировать". И прицепляю генератор.
Последний раз редактировалось Easyrider83; 25.12.2012 в 13:24.
|
|
|
Сказали "Спасибо" Easyrider83
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:08.
|
|