|
|
  |
Проблема с PIC16F876A, самопроизвольный резет |
|
|
|
Oct 12 2006, 18:55
|
Участник

Группа: Новичок
Сообщений: 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 подсоединен светодиод. запускаю контроллер - светодиод мигает (хотя не должен), причем мигает с частотой гдето раз в секунду. Т.е. такое ощущение что контроллер сам по себе резетица раз в секунду. Всякие там вочдоги и тп все поотключал. Может контроллер испортился или чтото я не так делаю? Подскажите плиз.
|
|
|
|
|
Oct 12 2006, 22:01
|
Частый гость
 
Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148

|
Может быть, стоит начать программу так (для большей уверенности): Код CLRF STATUS ; Do initialization (Bank 0) CLRF INTCON ; Запрет всех прерываний CLRF PIR1 ; Очистка флагов - признаков прерываний CLRF PIR2 .... Кроме того, необходимо подтянуть ногу "MCLR" (1) к + питания (для контроллера с буквой "А" на конце - через резистор, без буквы - можно замкнуть напрямую. Ещё можно попробовать выключить LVP.
|
|
|
|
|
Oct 13 2006, 20:56
|
Участник

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

|
а я на прямую замыкал MCLR )) может от этого?
|
|
|
|
|
Oct 13 2006, 21:05
|
Частый гость
 
Группа: Свой
Сообщений: 109
Регистрация: 27-07-06
Из: С.-Петербург
Пользователь №: 19 148

|
Цитата(PLATRO @ Oct 14 2006, 00:56)  а я на прямую замыкал MCLR )) может от этого? Вряд ли. Это допустимо, но не рекомендуется. Может, немного ещё упростить: Код BSF PORTC, 0 GOTO $ Т.е., светодиод зажгли, и крутимся в бесконечном цикле.
|
|
|
|
|
Oct 16 2006, 05:29
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(Костян @ Oct 14 2006, 12:38)  А в конфигурации отключен сторожевой таймер ??? Вы , что не контролируете конфигурационное слово при программировании? Вообще-то этому надо уделять серьезное внимание.Недавно скачал пример по USB с Микрочипа.Так вот с их конфигурационным словом не работает.Пришлось вносить поправки.
|
|
|
|
|
Oct 17 2006, 08:09
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Oct 17 2006, 09:19
|
Участник

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

|
Ну кароче я так понял Вы все думаете что это не испорченный МК, а происходит какойто сброс. Ну чтож спасибо за советы, будем разбираться. Кстати программатор у меня EXTRAPIC http://5v.ru/extrapic.htm
|
|
|
|
|
Oct 18 2006, 22:03
|
Участник

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

|
Всем спасибо, все заработало. Проблема ушла после того как я проделал рекомендации из поста №2
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|