Например TDA7294

Форум РадиоКот • Просмотр темы - Помогите с программированием PICа
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 05, 2025 22:11:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 21 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Помогите с программированием PICа
СообщениеДобавлено: Сб сен 05, 2009 17:46:08 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
Помогите начинающему разобраться с программированием пика.
написал прогу , при вкл. питания светодиод моргает с частотой около 0,5 с. при нажатии кнопы он должен начать моргать с частотой примерно 1 сек(почему примерно я циклы не подгонял точно), так вот вроде работает , нажимаю кнопу светодиод моргает медленнее , но один цикл , а потом начинает моргать с частотой 0,5 сек. И не могу найти где баг.
Самое интересное что в мп лабе все работает нормально.в


Вложения:
ASM_SXEMA.rar [12.85 KiB]
Скачиваний: 227
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Помогите с программированием PICа
СообщениеДобавлено: Сб сен 05, 2009 18:52:58 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7316
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Программу стереть и написать заново. Или по крайней мере строчки
Код:
                BTFSS           PORTB,0         ;проверка замыкания кнопы
                GOTO            PP1             ;если замкнуто то переход в подпрограмму

вытащить из внутреннего цикла за пределы внешнего - это раз.
Второе, PP1 - это у тебя не подпрограмма. Или сделай подпрограмму, или
посмотри куда в конце ее ведет переход. Пока что получается, что этот кусок у тебя ничего не делает, поскольку после перехода на START твои значения снова затираются начальными значениями.
Это то что бросилось в глаза сразу. Внимательнее проводи отладку и со временем такие глупости делать не будешь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 05, 2009 20:15:27 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вт ноя 20, 2007 17:30:36
Сообщений: 328
Откуда: Раша
Рейтинг сообщения: 0
Как-то странно... Исходя из схемы кнопка к программе не имеет ни какого отношения. TRISA сброшен, т.е. все порты RA работают на выход. На кой тогда нужна кнопка на RA0? Зачем RB0 настроен на вход? Зачем Вы перечисляете регистры STATUS, TRIS, PORT, F... и т.д? Достаточно подключить в проект стандартный Header Files. Сделал набросок программки. При включении свд мигает каждые 0,5 сек. При нажатии и удержании кнопки свд мигает каждые 1 сек. При отпускании снова 0,5 сек. На Вашей схеме свд мигать не будет. Подключен неправильно. Остальное пробуйте сами.


Вложения:
Led.asm [2.83 KiB]
Скачиваний: 226

_________________
Важнейшая задача цивилизации - научить человека мыслить. /Т. Эдисон/
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 05, 2009 23:22:16 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
В схеме опечатка, там опрос кнопки происходит по RB0,
Почему указаны не используемые регистры ? потому что этот кусок я писал для другой проги.
И в тз я написал что смена частоты моргания должна сменяться при нажатии и отпускании кнопки.А не держать ее постоянно.
За первый пост спс, сейчас перепрошью и проверю.


Вложения:
ASM_SXEMA.rar [12.75 KiB]
Скачиваний: 194
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 05, 2009 23:41:30 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Вт ноя 20, 2007 17:30:36
Сообщений: 328
Откуда: Раша
Рейтинг сообщения: 0
OOzzzz писал(а):
В схеме опечатка, там опрос кнопки происходит по RB0.

В таком случае нет необходимости в установке доп. резистора 10 ком с RB0 на +Uпит. В программе подключите подтягивающие резисторы!
OOzzzz писал(а):
Почему указаны не используемые регистры ? потому что этот кусок я писал для другой проги.

А причём здесь другая прога? Я написал о том, что дополнительное описание регистров м/к таких как STATUS, TRISх, PORTх, F... и т.д мартышкин труд. Все они есть в файле xxxxxx.inc. Достаточно его подключить в проект.
OOzzzz писал(а):
в тз я написал что смена частоты моргания должна сменяться при нажатии и отпускании кнопки.А не держать ее постоянно.

Я не слепой. Видел. Поработайте немного своими мозгами. Если уж будет совсем непонятно, тогда все вопросы сюда...
Ещё раз: светодиод на схеме нарисован неверно.

_________________
Важнейшая задача цивилизации - научить человека мыслить. /Т. Эдисон/


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 05, 2009 23:43:50 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
Вот исправил ошибки и опечатки в схеме, перепрошил и результат тот же.
При нажатии проходит один цикл и опять моргает с частотой 0,5 сек.
А в мп лабе нормально :(


Вложения:
asm.rar [12.76 KiB]
Скачиваний: 205
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 05, 2009 23:55:49 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
Согласен со светодиодом. но это не правильно нарисовал, а так он работает. Изменил схему.


Вложения:
asm1.rar [12.9 KiB]
Скачиваний: 202
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 06, 2009 07:56:10 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7316
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
OOzzzz писал(а):
Согласен со светодиодом. но это не правильно нарисовал, а так он работает. Изменил схему.

Гораздо логичнее теперь программа выглядит.
По поводу ТЗ: а так и задумано, чтобы кнопка опрашивалась ТОЛЬКО во время светящегося светодиода?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 06, 2009 08:52:24 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
да какое там, прости господи, техзадание.. лабораторная работа, наверное. Обработки кнопок так таковой нет, ну, мигать что-то будет..
преподу хватит.
Чуть поправил, а то прямо код глаза режет


Вложения:
morg1.zip [1.34 KiB]
Скачиваний: 205
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 06, 2009 09:31:25 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7316
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
urry писал(а):
Чуть поправил, а то прямо код глаза режет

Не совсем. Человек старательно опрос кнопки сует внутрь циклов паузы. Наверное, есть желание фиксировать факт срабатывания кнопки максимально оперативно. Хотя тогда не понятно, почему опрос размещен не внутри первого цикла, а во втором?
Если бы мне нужно было бы сделать такую хохму, я бы сделал исключительно на прерываниях. Мне лениво считать такты в циклах, а так сделал прерывание раз в 250мкс и наступит счастье. Если не нужно строго пол-секунды можно и с ватчдогом извратиться ;-)


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 06, 2009 21:39:45 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
да какое там, прости господи, техзадание.. лабораторная работа, наверное. Обработки кнопок так таковой нет, ну, мигать что-то будет..
преподу хватит.

Это не лабораторная, я уже давно отучился. Просто раньше схемы паял на дискретных элементах, но это сейчас уже прошлый век, вот решил разбираться с рicами.

По поводу ТЗ: а так и задумано, чтобы кнопка опрашивалась ТОЛЬКО во время светящегося светодиода? нет так не задумано но я видел этот баг

На прерываниях пробовал, то же самое у меня получается :cry:
Скачал архив сейчас буду разбирать


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 06, 2009 23:18:29 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
Цитата:
да какое там, прости господи, техзадание.. лабораторная работа, наверное. Обработки кнопок так таковой нет, ну, мигать что-то будет..
преподу хватит.
Чуть поправил, а то прямо код глаза режет

скачал. прошил результат тот же


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн сен 07, 2009 03:24:38 
Родился

Зарегистрирован: Пн сен 07, 2009 02:21:07
Сообщений: 10
Откуда: Украина
Рейтинг сообщения: 0
Последняя прога вроде должна работать как надо.
Если судить по предпоследней то задержка моргания 05 сек загружается
один раз В НАЧАЛЕ программы и больше никоим чудом не трогается. При первом нажатии на кнопу загружается 1 сек и больше ничего. Из сего следует что пик у вас сбрасывается либо вы прошиваете пик одной и тойже прогой.
сброс МК (если это не РОR) можно отловить если ввести ещё одну переменную (типа RCOUNT), на старте делать ей incf и выводить младший бит её на ещё один светодиод


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн сен 07, 2009 09:57:00 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
Может, проще сбросить собаку в процедуре временной задержки ?
Но, если это не лабораторная, то все сделано не так.
Процедура опроса кнопок - это отдельная задача, которая должна корректировать дребезг кнопки. Для этого она вызывается миллисекунд через 10 и при опросе модифицируется счетчик антидребезга - решение о том, что кнопка нажата или отжата, принимается по тому, сколько этот счетчик насчитал.
Временные задержки такой длительности - только через таймер! Иначе у Вас не останется времени ни на что другое.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 08, 2009 10:02:53 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
nicolia писал :
[/quote]Из сего следует что пик у вас сбрасывается либо вы прошиваете пик одной и тойже прогой.
сброс МК (если это не РОR) можно отловить если ввести ещё одну переменную (типа RCOUNT), на старте делать ей incf и выводить младший бит её на ещё один светодиод
Цитата:
Скорее всего сбрасывается, но почему, и как это отловить , можно поподробнее. На счет того что я не прошиваю, специально зашил другую прогу , там все работает, зашиваю эту . не работает, вернее работает но не правильно


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 08, 2009 17:33:01 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
поскольку я не хочу быть голословным, то - как бы я сделал - присоединяю.
Единственное - на асме меня теперь под пистолетом программить не заставишь
- писал на хайтеке. Компилятор ожно скачать на моем ресурсе
- да простят меня модераторы за ссылку http://www.remexpert.com/ipb/ipb.html?a ... owfile=153
нужно после регистрации запостить пару сообщений - хоть в курилку, такое...


Вложения:
mla.rar [44.91 KiB]
Скачиваний: 217
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 10, 2009 22:25:36 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
urry ваш вариант прошил, работает почти стабильно , бывают глюки если удержать кнопку :)) , но я так и не понял чего моя прога не работает как нужно :cry:


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Чт сен 10, 2009 23:02:13 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
urry еще в твоей проге не выставлены биты конфигурации,я поставил cp-off, pwrte-on,wdte-off, xt.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт сен 11, 2009 09:24:15 
Сверлит текстолит когтями
Аватар пользователя

Карма: 22
Рейтинг сообщений: 81
Зарегистрирован: Пн дек 08, 2008 10:58:48
Сообщений: 1262
Откуда: Винница
Рейтинг сообщения: 0
OOzzzz писал(а):
но я так и не понял чего моя прога не работает как нужно :cry:

Перепишите алгоритм с учетом замечаний - не хотите на си, пишите на асме, но наверное, Вам нужно в раздел "для начинающих" ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 19, 2009 18:34:21 
Открыл глаза

Зарегистрирован: Сб сен 05, 2009 16:21:14
Сообщений: 57
Откуда: Украина
Рейтинг сообщения: 0
Долго не писал инет был в отключке.
Вот переписал прогу, но результат такой же. проходит два такта и начинает моргать с частотой о,5 сек. Если держать кнопу то моргает с частотой 1 сек.
Файл асм прилагаю, где баги прячутся ?


Вложения:
1 morg1.asm [4.44 KiB]
Скачиваний: 314
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 21 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y