Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: ivan_fd  
Пример проблемного проекта.
ADMIN Дата: Вт, 22.01.2008, 12:21  |                                                                                                                Сообщение # 1
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Цитата из письма:
Quote
Не могу понять, в чём проблема. Микроконтроллер 16F876A работает так как ему захочется, а не так как полагается по программе.
Например, пример из книги Чака Х. управление 7-сегментным индикатором (адаптированный под плату PIC-EASY)

Code
x var byte  

numb1 var byte  

portВ = %00000000  
trisВ = %00000000  
adcon1 = 6  
trisA = %00000000  
portA = %00000000  
loop:  
for x = 0 to 9 step 1  
gosub convrt  
portB = numb1  
pause 100  
next  

goto loop  

convrt:  

lookup x, [$C0, $F9, $A4, $B0, $99, $92, $82, $F8, $80, $90], numb1  
return

Quote
Глюки:
1) Поначалу всё работает, как полагается, а потом через некоторое время контроллер виснет и не реагирует на сброс и отключение питания только перепрашивать заново.
2) В программе задано время смены цифры на индикаторе 1 секунда, контроллер меняет цифру за 2, 3 … 10 секунд для каждой цифры по разному.
3) Работает, зависнет и снова работает.
И такое происходит со всеми программами.
Подскажите, пожалуйста, в чём может быть причина сих глюков. Из-за них не могу приступать к более сложным проектам.
ЯНДЕКС Дата: 22.01.2008
ADMIN Дата: Вт, 22.01.2008, 12:34  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Эта проблема не в коде, судя по всему.

При прошивке wdt отключен?
MCLR сколько по питанию?
Наводки какие рядом есть-нет?
Если все программы глючат, не в ПИКЕ ли дело?
Есть под рукой другой пик? Проверь на нем.
Ответь на эти вопросы, может что прояснится.

evgenb Дата: Вт, 22.01.2008, 20:03  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 91
Репутация: 3   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

basicpic,

После goto loop руководством РВР рекомендуется ставить END.

Но точно не знаю. Проверь в Протеусе. Если работает, смотри камень

Romario Дата: Вт, 22.01.2008, 23:29  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 58
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

На MCLR - 5 вольт, END в конце программы стоит, наводок нет. При прошивке wdt всегда отключаю. Я уже задавал подобный вопрос на другом форуме, народ говорит: "Там есть SLEEP и пробуждение от WDT, хотя в исходнике их нет. Наверняка дело в "кривой" работе с WDT"
Возможно сам контроллер глюкавый, проверю на другом после зарплаты.

Кто ещё поделится своими глюками с МК, думаю это будет полезно для всех!

ADMIN Дата: Ср, 23.01.2008, 03:41  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

У меня ни в одной программе END не стоит. Главное зациклить программу.
Если в исходнике нет sleep, то и не циклись на этом. Скорее проц глючит.
evgenb Дата: Ср, 23.01.2008, 09:57  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 91
Репутация: 3   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

basicpic,
Показан только фрагмент программы. Такое похоже когда программа перезаписывается или теряет адрес исполнения. Возможно не выполняются условия 2К, возможно больше четырех вложенных подпрограмм, возможно некорректная работа READCODE или WRITECODE.
ADMIN Дата: Ср, 23.01.2008, 11:21  |                                                                                                                Сообщение # 7
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Пример вроде взят из книги Хелибайка.
Поэтому пусть автор выложит весь текст. Будем разбираться. Возможно стек переполняется где-то и все
Romario Дата: Ср, 23.01.2008, 13:02  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 58
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

Это и есть весь текст програмы (пример №3 Чак Хелибайк) адаптированный под оладочную плату PIC-Easy.
Aleks_ey Дата: Ср, 23.01.2008, 13:19  |                                                                                                                Сообщение # 9
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 15.11.2007

Статус: Offline

А может как раз и не надо отключать WDT кажись команда "PAUSE" его использует, хотя может ошибаюсь, но вроде так.
ADMIN Дата: Ср, 23.01.2008, 16:22  |                                                                                                                Сообщение # 10
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

pause учитывает wdt, проверьте disasm'ом, на всякий случай.
Роман, попробуй уже, наконец с другим процем, будем знать. Уже всех заинтриговал...
Aleks_ey Дата: Ср, 23.01.2008, 19:40  |                                                                                                                Сообщение # 11
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 15.11.2007

Статус: Offline

Да, ты прав. disasm'ом смотреть не обязательно нужно просто глянуть в файл PIC14EXT.BAS cool
ЯНДЕКС Дата: 23.01.2008
ADMIN Дата: Чт, 24.01.2008, 03:03  |                                                                                                                Сообщение # 12
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

А "pause 100" - это не секунда...
brown Дата: Чт, 24.01.2008, 04:44  |                                                                                                                Сообщение # 13
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 333
Репутация: 12   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

У меня проблем с 876А в РВР не было. В начало проги вводил следующие строки:
ADCON1 = 7 'Все порты цифровые
ADCON0.0 = 0 'АЦП выключен
SSPCON.5 = 0 'Модуль SSP выкл., порты цифровые
А вот в Протоне при компиляции разными версиями одной и той же проги получал разный
результат работы в железе, но это наверное проблема в компиляторе- так точную причину не установил.


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
ADMIN Дата: Чт, 24.01.2008, 05:33  |                                                                                                                Сообщение # 14
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

У меня с протоном проблем вообще не было. Работаю только с ним.
Romario Дата: Пт, 25.01.2008, 20:36  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 58
Репутация: 0   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

Можете прислать какую небудь программку, написанную на Протоне.
Испытаю её на МК.
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: