Добрый день прошу помочь разобраться с проблемой, может кто-нибудь сталкивался с подобным... Собрал намоточный станок, на двух шаговиках, рулит всем PIC16F84A все работает, но через некоторое время(всегда разное) тухнет индикация и периодически(зависимость тоже не выявил) виснет работа моторов на произвольное время, потом опять начинает работать(виснет всегда после срабатывания прерывания счетчика витков) Все "глюки" хаотичны могут проявиться за цикл намотки, а могут и нет( не могу понять из-за чего они возникают, сменил три микросхемы, и пробовал менять дисплеи не помогает((( Описание: контролер выдает сигналы на дисплей по трем пинам(4 восьмерки, китайская сборка 4-bit led didgital tube module) и на двигатели с драйверами(в другом станке они отлично работали) на валу стоит прерыватель и через оптопару делает прерывание по ноге INT(RB0) в прерывании считаются витки и направление укладки провода. параметры намотки вводятся через самодельную клавиатуру(порты опрашиваются без прерываний), WDT отключен, SLIP не использую. ну в кратце вроде-бы все, при вводе параметров все работает отлично, глюки возникают только в процессе намотки. P.S. код большой, если надо выложу, писал в MPLab на ассемблере, заливал через К-150.
Для того чтобы вам помочь необходима: схема(хоть начерченная на клочке бумаги) и ваш ассемблерный код. Чем больше вы представите информации тем больше народу откликнется, здесь форум радиолюбителей а не экстрасенсов
W и STATUS перед использованием обнуляю, прикрепляю код, схема простая питание через LM7805 и кондер на 10мкф с общего импульсника на 24 вольта все порты на прямую,кварц на 4 мГц и кондеры к нему на 15пф,(была мысль, что частота на пределе, пробовал заливать на 20мГц микруху, не помогло(() на RA4 подтягивающий резистор на 100кОм к +5, на RB0 оптопара подтягивает минус при прерывании "луча" клавиатура к портам RB4-RB7 через диоды(формирую двоичный код, чтобы все кнопки влезли) к RB2 подтягивающий резистор 47кОм к +5 и выключатель на минус(выключатель паузы) RA0-RA2 на дисплей, RA3- шаг первого двигателя(к драйверу) RA4-шаг второго двигателя(к драйверу) RB3- направление вращения второго двигателя(к драйверу) и переключатель на минус с подтяжкой на +5 к драйверу (меняет вращение намотки) я ее даже не рисовал, печатку нарисовал и так собрал. RB1 планировалось на концевик нулевого положения или на натяжку проволки, но пока не задействован и не подключен. P.S. код замороченый и коментов мало, если что-то непонятно, могу пояснить.. Вначале грешил на наводки, поменял блок питания на более мощный и заземлил весь станок и минус питания, не помогло((( P.S.1 Насчет статуса и аккума это идея, если прерывание сработает где он использовался, тогда могут быть глюки... согласен, спасибо, об этом не подумал, исправлю.
Вложения:
Комментарий к файлу: последняя версия, до этого помоему старую скинул по ошибке... ind_new.asm [24.07 KiB]
Скачиваний: 281
Комментарий к файлу: код намоточного станка ind.asm [23.49 KiB]
Скачиваний: 259
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Сохраните аккумулятор и регистр Status: org 0x004 movwf w_temp swapf STATUS,W banksel PORTA movwf s_temp
int_out swapf s_temp,W movfw STATUS movfw w_temp retfie
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:5
Команда SWAP не изменяет флаги регистра STATUS. Плюс - данный код есть напутствие производителя из англоязычного datasheet... Можно, но когда немного понимаешь английский проще "говорить" move (переместить) W (w) в регистр F или move регистр F в аккумулятор W
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
MOVWF, BCF, BSF тоже не меняют, а вот MOVF меняет при нулевом результате.... а SWAPF меняет местами биты, со SWAPF согласен, а что за команда banksel, чтото у меня нету ее описания((( ?
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Это макрос выбора нулевого банка. Он был мне нужен в данном прерывании. Просто "влез" при копировании. Просто выкиньте эту строчку из своего кода.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Добавлено after 10 minutes 56 seconds: тогда по логике, у вас в коде есть небольшая неточность
org 0x004 movwf w_temp swapf STATUS,W banksel PORTA movwf s_temp
int_out swapf s_temp,W movfw STATUS movfw w_temp - после выполнения этой команды, при w_temp=0 изменится флаг Z в STATUS, тут помоему тоже через swapf надо делать, как-то так:
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Точно! Моя ошибка и недосмотр. Сейчас пересмотрел доку и увидел.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
При входе в прерывание не нужно его запрещать, это и так делается самим контроллером. И при выходе не нужно разрешать, т.к. именно это и делает команда retfie. Сохранение статуса и аккумулятора расписано в ДШ на МК на странице 32.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
спасибо за совет, где-то я читал, что лучше сделать( У меня это только вторая программа для пика, поэтому не судите строго.. Залил, все отлично работает спасибо доктору и шаману))) Еще вопрос немного не в тему: какое значение будет у переменной x, при х=0 и команде decf x,1
и какое при х=255 и incf x,1
и измениться ли при этом флаги в статусе? нигде не могу найти полного описания при таких случаях((
В описание команд есть колонка, в которой указано на какие флаги влияет та или иная команда. Конкретно эти две команды INCF и DECF, влияют только на флаг Z (флаг нулевого результат) регистра STATUS. INCF X (255), то произойдет переполнения данного регистра и его содержимое станет равным нулю, что приведет к поднятию флага Z = 1, так как результат операции стал равным нулю. DECF X (1), приведет к тому же самому, а именно флаг Z = 1, так как в результате уменьшения, значения регистра X стало равным нулю.
_________________ Для связи email: risctronix собака gmail.com
Последний раз редактировалось Core-X Сб ноя 12, 2016 13:07:29, всего редактировалось 1 раз.
спасибо за совет, где-то я читал, что лучше сделать
Либо неправильно прочли, либо советчик был не из тех, кого стоит слушать.
Что касается вопросов про флаги, все это, как уже было сказано, имеется в документации на контроллер. Это и в таблице команд, и в подробном описании по каждой команде. Всегда лучше сперва читать официальную документацию, а потом уже слушать или не слушать чьи-то советы.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22 Сообщений: 1368 Откуда: Беларусь
Рейтинг сообщения:0
Цитата:
Всегда лучше сперва читать официальную документацию
Правильно! Даже если не знаешь английского, лучше читать оригинал, пусть и с помощью переводчика. Я начинал учить PIC по "Карабельникову", перешел на "переведенные" datasheet... А в итоге очень понравилось читать оригиналы на Atmel, STM и тот же PIC.
_________________ «Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения