Поклонники продукции Microchip Technology Inc тусуются тут.
Чт ноя 02, 2017 21:35:40
Здравствуйте! Подскажите пожалуйста почему PIC18F14K50 при включении световых диодов через LATC сбрасывается и программа запускается с начала? Добавочные резисторы к каждому LED по 5КОм, все работает до тех пор пока не начинает функционировать PORTC. Прерывания отключены, сброс по падению напряжения тоже, пробовал так и так, MCLR отключен, в наличии два одинаковых чипа, поведение одинаково. Что может быть?
Чт ноя 02, 2017 22:03:54
Один из вариантов ошибки:
- в прошивке
- в схеме
- в разводке
Пт ноя 03, 2017 08:09:40
Скорее всего, не полная (или не правильная) инициализация периферии контроллера.
Пт ноя 03, 2017 08:22:04
поначалу думал ток большой протекает, резисторы разные чередовал пока до 5ком не дошел, все соединения разбирал собирал. писал другую такую программу при которой при нажатии кнопки происходит инкрементирование регистра который затем отображается через portc. доходит до определенного числа каждый раз по разному и сбрасывается чип начиная все с начала.
Добавлено after 5 minutes 54 seconds:
в mplab-e при отладке все работает, в proteus-e тоже все работает как и задумано а в железе не хочет, писал дополнительно код чтобы точно установить что прерывания не происходят - результат происходит сбрасывание
Пт ноя 03, 2017 08:25:05
Экстрасенсы все на тНт убежали и сюда не заходят. Где код ? Где схема ? Где всё, Карл... ?
Пт ноя 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
Пт ноя 03, 2017 08:54:22
Если не секрет: Кто за вас переключает банки памяти?
Пт ноя 03, 2017 09:05:45
схема
Добавлено after 7 minutes 17 seconds:я же вроде за пределы банка доступа не выхожу а к sfr обращаюсь по названию, а где необходимо переключение банков?
- Вложения
-
- 111.jpg
- (239.84 KiB) Скачиваний: 527
Пт ноя 03, 2017 09:12:21
Прочтите раздел "Memory Organization" в
документации на PIC18F14K50.
Скорее всего, MPLAB уже обматерился Warning-ами.
Пт ноя 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 то и сбрасывания не происходит
Пт ноя 03, 2017 09:26:55
Вы будете продолжать спорить или, всё-таки, прочтёте документацию?
Пт ноя 03, 2017 10:04:38
Я еще раз пробежался по английскому тексту и мало что понял, а главное не понял зачем людям обмениваться знаниями если они отправляют к чтению документации, и без форума понятно что ответы в документации, но я думал что форумы создаются для того чтобы те кто уже разобрался мог своими русскими словами объяснить то что другие еще не поняли. искать иголку в стоге сена или найдя её понять как она туда попала не одно и тоже
Пт ноя 03, 2017 10:07:24
Регистр BSR.
Пт ноя 03, 2017 10:08:04
А Вы считаете, что форума достаточно, чтобы не читать никаких документаций ? Всю жизнь будете на форум бегать, чтобы Вам пальчиком тыкали в ошибку ?
Вам уже дали совет, причём дельный. И указали дальнейшую дорогу. Что не так ?
Пт ноя 03, 2017 10:57:00
мне не понятно в каком месте моей программы из за отсутствия BSR происходит сбой и почему он ведет к началу программ и почему без отправки данных в portc сброса не происходит, а также он ведет себя по разному, порой выдает информацию через portc и не уходит в сброс.
обычно если код не правильный то сбой происходит в одном и том же месте а не по разному себя ведет
Пт ноя 03, 2017 11:04:37
Обратите внимание на:
1. Адресация по команде movwf (стр. 300).
2. Адреса расположения регистров SFR (стр. 35, 37).
3. Переключение между банками (стр. 36).
--
4. Выберите банк для своих регистров.
Если вы решили писать программу на ASM - вы обязаны знать контроллер на 100%.
Транслятору "по барабану" по каким адресам вы хотите обращаться если это в пределах адресного пространства данного контроллера.
А в режиме симуляции, MPLAB засыпет вас предупреждениями на тему "вы уверены что правильно выбрали банк?" (если не отключены предупреждения).
Пт ноя 03, 2017 11:15:29
спасибо, по разбираюсь потом отпишусь. по крайней мере есть что именно разбирать (movwf).
Пт ноя 03, 2017 11:29:16
CLRF (и как работают остальные команды, которыми вы пользуетесь) не забудьте...
Пт ноя 03, 2017 22:36:28
Может собака срабатывает?
Сб ноя 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"
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.