Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

PIC18F14K50 сбрасывается при использовании PORTC (asm)

Чт ноя 02, 2017 21:35:40

Здравствуйте! Подскажите пожалуйста почему PIC18F14K50 при включении световых диодов через LATC сбрасывается и программа запускается с начала? Добавочные резисторы к каждому LED по 5КОм, все работает до тех пор пока не начинает функционировать PORTC. Прерывания отключены, сброс по падению напряжения тоже, пробовал так и так, MCLR отключен, в наличии два одинаковых чипа, поведение одинаково. Что может быть?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Чт ноя 02, 2017 22:03:54

Один из вариантов ошибки:
- в прошивке
- в схеме
- в разводке

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 08:09:40

Скорее всего, не полная (или не правильная) инициализация периферии контроллера.

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 08:22:04

поначалу думал ток большой протекает, резисторы разные чередовал пока до 5ком не дошел, все соединения разбирал собирал. писал другую такую программу при которой при нажатии кнопки происходит инкрементирование регистра который затем отображается через portc. доходит до определенного числа каждый раз по разному и сбрасывается чип начиная все с начала.

Добавлено after 5 minutes 54 seconds:
в mplab-e при отладке все работает, в proteus-e тоже все работает как и задумано а в железе не хочет, писал дополнительно код чтобы точно установить что прерывания не происходят - результат происходит сбрасывание

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 08:25:05

Экстрасенсы все на тНт убежали и сюда не заходят. Где код ? Где схема ? Где всё, Карл... ?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 08:39:55

START
CLRF TRISA
CLRF TRISB
CLRF TRISC
CLRF ADCON1
CLRF ADCON2
CLRF ANSELH
CLRF ANSEL
CLRF LATC
MOVLW 003h
MOVWF LATC

MOVLW 00Eh ;left justify, FOSC/64,
MOVWF ADCON2 ; & 2TAD ACQ time
MOVLW 000h ;ADC ref = Vdd,Vss
MOVWF ADCON1 ;
BSF TRISB,4 ;Set RB4 to input
BSF ANSELH,2 ;Set RB4 to analog

BSF TRISB,7
BSF TRISB,6
MOVLW 0xC0
MOVWF WPUB
BCF INTCON2,7
RAB1
MOVLW 028h ;AN10, ADC off
MOVWF ADCON0
MOVLW 0FFh
MOVWF RESULTLO
MOVLW 0FFh
MOVWF RESULTHI
RAB

BTFSS PORTB,7
GOTO VKL1
NOP
NOP

GOTO RAB

VKL1
CALL ZADER1


VKL
BTFSS PORTB,6
GOTO RABNACH
GOTO OSNOV


RABNACH

CALL ZADER1
GOTO RAB1

OSNOV
MOVLW 029h ;AN10, ADC on
MOVWF ADCON0 ;
CALL ZADER
BSF ADCON0,GO ;Start conversion
ADCPoll
BTFSC ADCON0,GO ;Is conversion done?
BRA ADCPoll ;No, test again
; Result is complete - store 2 MSbits in
; RESULTHI and 8 LSbits in RESULTLO
MOVFF ADRESH,RESULTHI
MOVLW 000h ;AN10, ADC on
MOVWF ADCON0
MOVFF RESULTHI,WREG
CPFSGT RESULTLO,0
GOTO DOP
GOR
MOVFF RESULTHI,RESULTLO
MOVFF RESULTHI,LATC
CALL ZADER
GOTO VKL



DOP
CPFSEQ RESULTLO,0
GOTO DOP1
GOTO GOR

DOP1
CPFSLT RESULTLO,0
NOP
GOTO VKL

ZADER

MOVLW 04Fh
MOVWF zadr

ZAD


DECFSZ zadr,1,0
GOTO ZAD




NOP
NOP





RETURN

ZADER1

MOVLW 0F2h
MOVWF zadr
MOVLW 0CCh
MOVWF zadr1
MOVLW 03Dh
MOVWF zadr2
NOP
NOP
NOP

ZAD1


DECFSZ zadr,1,0
GOTO ZAD1

DECFSZ zadr1,1,0
GOTO ZAD1

DECFSZ zadr2,1,0
GOTO ZAD1
NOP
NOP

RETURN

END

програмка при нажатии кнопки RB7 проверяет уровень напряжения и отображает данные через LATC, при нажатии RB6 отключает ADC и переходит на обработчик нажатия кнопки RB7

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 08:54:22

Если не секрет: Кто за вас переключает банки памяти?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 09:05:45

схема

Добавлено after 7 minutes 17 seconds:
я же вроде за пределы банка доступа не выхожу а к sfr обращаюсь по названию, а где необходимо переключение банков?
Вложения
111.jpg
(239.84 KiB) Скачиваний: 527

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 09:12:21

Прочтите раздел "Memory Organization" в документации на PIC18F14K50.
Скорее всего, MPLAB уже обматерился Warning-ами.

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 09:24:17

"make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X'
make -f nbproject/Makefile-default.mk dist/default/debug/7777777.X.debug.cof
make[2]: Entering directory 'G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X'
"C:\Program Files (x86)\Microchip\MPLABX\v3.60\mpasmx\mpasmx.exe" -d__DEBUG -d__MPLAB_DEBUGGER_SIMULATOR=1 -q -p18f14k50 -l"build/default/debug/77.lst" -e"build/default/debug/77.err" -o"build/default/debug/77.o" "77.asm"
"C:\Program Files (x86)\Microchip\MPLABX\v3.60\mpasmx\mplink.exe" -p18f14k50 -w -x -u_DEBUG -z__ICD2RAM=1 -m"dist/default/debug/7777777.X.debug.map" -z__MPLAB_BUILD=1 -z__MPLAB_DEBUG=1 -z__MPLAB_DEBUGGER_SIMULATOR=1 -odist/default/debug/7777777.X.debug.cof build/default/debug/77.o
MPLINK 5.08, LINKER
Device Database Version 1.36
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0

make[2]: Leaving directory 'G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X'
make[1]: Leaving directory 'G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X'

BUILD SUCCESSFUL (total time: 953ms)
Loading symbols from G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X/dist/default/debug/7777777.X.debug.cof...
Loading code from G:/VARELLA/prog/MICROCHIP/MPLABXProjects/7777777.X/dist/default/debug/7777777.X.debug.cof...
Loading completed"

никаких предупреждений, в железе чип отрабатывает несколько циклов только потом уходит в сбрасывание, если PORTC не зажигает LED то и сбрасывания не происходит

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 09:26:55

Вы будете продолжать спорить или, всё-таки, прочтёте документацию?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 10:04:38

Я еще раз пробежался по английскому тексту и мало что понял, а главное не понял зачем людям обмениваться знаниями если они отправляют к чтению документации, и без форума понятно что ответы в документации, но я думал что форумы создаются для того чтобы те кто уже разобрался мог своими русскими словами объяснить то что другие еще не поняли. искать иголку в стоге сена или найдя её понять как она туда попала не одно и тоже

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 10:07:24

Регистр BSR.

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 10:08:04

А Вы считаете, что форума достаточно, чтобы не читать никаких документаций ? Всю жизнь будете на форум бегать, чтобы Вам пальчиком тыкали в ошибку ?
Вам уже дали совет, причём дельный. И указали дальнейшую дорогу. Что не так ?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 10:57:00

мне не понятно в каком месте моей программы из за отсутствия BSR происходит сбой и почему он ведет к началу программ и почему без отправки данных в portc сброса не происходит, а также он ведет себя по разному, порой выдает информацию через portc и не уходит в сброс.
обычно если код не правильный то сбой происходит в одном и том же месте а не по разному себя ведет

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 11:04:37

Обратите внимание на:
1. Адресация по команде movwf (стр. 300).
2. Адреса расположения регистров SFR (стр. 35, 37).
3. Переключение между банками (стр. 36).
--
4. Выберите банк для своих регистров.

Если вы решили писать программу на ASM - вы обязаны знать контроллер на 100%.
Транслятору "по барабану" по каким адресам вы хотите обращаться если это в пределах адресного пространства данного контроллера.
А в режиме симуляции, MPLAB засыпет вас предупреждениями на тему "вы уверены что правильно выбрали банк?" (если не отключены предупреждения).

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 11:15:29

спасибо, по разбираюсь потом отпишусь. по крайней мере есть что именно разбирать (movwf).

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 11:29:16

CLRF (и как работают остальные команды, которыми вы пользуетесь) не забудьте...

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Пт ноя 03, 2017 22:36:28

Может собака срабатывает?

Re: PIC18F14K50 сбрасывается при использовании PORTC (asm)

Сб ноя 04, 2017 22:53:56

использовал регистр BSR не помогает. что не так в моем обращении к памяти?




"CBLOCK 0x000
zadr
zadr1
zadr2
RESULTHI
RESULTLO
ENDC

START
MOVLB 00Fh
CLRF TRISA
CLRF TRISB
CLRF TRISC
CLRF ADCON1
CLRF ADCON2
CLRF ANSELH
CLRF ANSEL

CLRF LATC
MOVLW 003h
MOVWF LATC,1

MOVLW 00Eh ;left justify, FOSC/64,
MOVWF ADCON2,1 ; & 2TAD ACQ time
MOVLW 000h ;ADC ref = Vdd,Vss
MOVWF ADCON1,1 ;
BSF TRISB,4,1 ;Set RB4 to input
BSF ANSELH,2,1 ;Set RB4 to analog

BSF TRISB,7,1
BSF TRISB,6,1
MOVLW 0xC0
MOVWF WPUB,1
BCF INTCON2,7,1
RAB1
MOVLW 028h ;AN10, ADC off
MOVWF ADCON0,1
MOVLB 000h
MOVLW 0FFh
MOVWF RESULTLO,1
MOVLW 0FFh
MOVWF RESULTHI,1
RAB

MOVLB 00Fh
BTFSS PORTB,7,1
GOTO VKL1
NOP
NOP

GOTO RAB

VKL1
CALL ZADER1


VKL
MOVLB 00Fh
BTFSS PORTB,6,1
GOTO RABNACH
GOTO OSNOV


RABNACH

CALL ZADER1
GOTO RAB1

OSNOV
MOVLB 00Fh
MOVLW 029h ;AN10, ADC on
MOVWF ADCON0,1 ;
CALL ZADER
MOVLB 00Fh
BSF ADCON0,GO,1;Start conversion
ADCPoll
BTFSC ADCON0,GO,1 ;Is conversion done?
GOTO ADCPoll ;No, test again
; Result is complete - store 2 MSbits in
; RESULTHI and 8 LSbits in RESULTLO
MOVFF ADRESH,RESULTHI
MOVFF RESULTHI,WREG
MOVLB 000h
CPFSGT RESULTLO,1
GOTO DOP
GOR
MOVFF RESULTHI,RESULTLO
MOVFF RESULTHI,LATC
CALL ZADER
GOTO VKL



DOP
MOVLB 000h
CPFSEQ RESULTLO,1
GOTO DOP1
GOTO GOR

DOP1
MOVLB 000h
CPFSLT RESULTLO,1
NOP
GOTO VKL

ZADER

MOVLB 000h
MOVLW 04Fh
MOVWF zadr,1

ZAD


DECFSZ zadr,1,1
GOTO ZAD




NOP
NOP





RETURN

ZADER1

MOVLB 000h
MOVLW 0F2h
MOVWF zadr,1
MOVLW 0CCh
MOVWF zadr1,1
MOVLW 03Dh
MOVWF zadr2,1
NOP
NOP
NOP

ZAD1


DECFSZ zadr,1,1
GOTO ZAD1

DECFSZ zadr1,1,1
GOTO ZAD1

DECFSZ zadr2,1,1
GOTO ZAD1
NOP
NOP

RETURN





END"
Ответить