реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблема с PIC16F876A, самопроизвольный резет
PLATRO
сообщение Oct 12 2006, 18:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-06-06
Пользователь №: 17 994



вот вся программа:

list p=16f876 ; list directive to define processor
#include <p16f876.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_OFF & _LVP_ON & _DEBUG_OFF & _CPD_OFF



org 000
goto start
org 005

start:
banksel TRISС
movlw b'00000000'
movwf TRISC
bcf INTCON, GIE
start2:
banksel PORTС

key:

bsf PORTC, 0

goto key
end

к RC0 подсоединен светодиод. запускаю контроллер - светодиод мигает (хотя не должен), причем мигает с частотой гдето раз в секунду. Т.е. такое ощущение что контроллер сам по себе резетица раз в секунду. Всякие там вочдоги и тп все поотключал. Может контроллер испортился или чтото я не так делаю? Подскажите плиз.
Go to the top of the page
 
+Quote Post
Andy_F
сообщение Oct 12 2006, 22:01
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148



Может быть, стоит начать программу так (для большей уверенности):

Код
    CLRF    STATUS          ; Do initialization (Bank 0)
    CLRF    INTCON          ; Запрет всех прерываний
    CLRF    PIR1                        ; Очистка флагов - признаков прерываний
    CLRF    PIR2
....


Кроме того, необходимо подтянуть ногу "MCLR" (1) к + питания (для контроллера с буквой "А" на конце - через резистор, без буквы - можно замкнуть напрямую. Ещё можно попробовать выключить LVP.
Go to the top of the page
 
+Quote Post
PLATRO
сообщение Oct 13 2006, 20:56
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-06-06
Пользователь №: 17 994



а я на прямую замыкал MCLR )) может от этого?
Go to the top of the page
 
+Quote Post
Andy_F
сообщение Oct 13 2006, 21:05
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148



Цитата(PLATRO @ Oct 14 2006, 00:56) *
а я на прямую замыкал MCLR )) может от этого?


Вряд ли. Это допустимо, но не рекомендуется.

Может, немного ещё упростить:

Код
   BSF    PORTC, 0
   GOTO $


Т.е., светодиод зажгли, и крутимся в бесконечном цикле.
Go to the top of the page
 
+Quote Post
Костян
сообщение Oct 14 2006, 09:38
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



А в конфигурации отключен сторожевой таймер ???
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 16 2006, 05:29
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(Костян @ Oct 14 2006, 12:38) *
А в конфигурации отключен сторожевой таймер ???


Вы , что не контролируете конфигурационное слово при программировании?
Вообще-то этому надо уделять серьезное внимание.Недавно скачал пример по USB с
Микрочипа.Так вот с их конфигурационным словом не работает.Пришлось вносить
поправки.
Go to the top of the page
 
+Quote Post
ANV
сообщение Oct 16 2006, 16:10
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 69
Регистрация: 16-10-05
Пользователь №: 9 713



Посмотри еще сдесь
http://www.microchip.ru/phorum/read.php?f=...01&t=117356
Go to the top of the page
 
+Quote Post
DL36
сообщение Oct 17 2006, 08:09
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



А если попробать определьть тип сброса? приблизительно так.
Мой шаблон для си. Добавить проверку на -TO -RD

GLOBAL powerup,start, big_powerup
PSECT powerup,class=CODE,delta=2
powerup
bsf STATUS, RP0 ;Банк 1
btfsc PCON, POR ;Сброс при включении питания?
ljmp big_powerup ;НЕТ, WDT или сброс MCLR
ljmp start ;Да

PSECT big_powerup,class=CODE,delta=2
big_powerup
btfss PCON, BOR ;Сброс при снижении питания?
goto pdown ;
btfss STATUS, TO ;Сброс WDT?
goto pwdt
ljmp start
pdown
movlw MASKA
movwf TRISA
bcf STATUS, RP0 ;Банк 1
clrwdt
bsf PORTA, OUT
goto $-2

pwdt
movlw MASKA
movwf TRISA
bcf STATUS, RP0 ;Банк 1
clrwdt
bcf PORTA, OUT
goto $-2
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 17 2006, 08:25
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



В принципе все советы правильные.Мне кажется , что программатор не поддерживает
PIC16F876 с буквой A.Поэтому и не программируется правильно конфигурационное слово.
Go to the top of the page
 
+Quote Post
PLATRO
сообщение Oct 17 2006, 09:19
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-06-06
Пользователь №: 17 994



Ну кароче я так понял Вы все думаете что это не испорченный МК, а происходит какойто сброс. Ну чтож спасибо за советы, будем разбираться. Кстати программатор у меня EXTRAPIC http://5v.ru/extrapic.htm
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 17 2006, 10:28
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



С программатором вроде все в порядке.Проверьте свой код в Протеусе.Тогда останется пик и
программатор.В пик записать и прочитать.Если все совпало, то пик нормальный.
Go to the top of the page
 
+Quote Post
PLATRO
сообщение Oct 18 2006, 22:03
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 12-06-06
Пользователь №: 17 994



Всем спасибо, все заработало. Проблема ушла после того как я проделал рекомендации из поста №2
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 13:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0143 секунд с 7
ELECTRONIX ©2004-2016