serg123 Опубликовано 23 сентября, 2018 Поделиться Опубликовано 23 сентября, 2018 Все разобрался, виновником был регистр 0xDA = 0x12, сейчас 0xDA = 0x02 и вот такой результат. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 Доброго времени суток! Ковыряюсь с пик 16ф690 и не получается оживить входы porc,0 и portc,1, уже вроде и аналоговый вход отключил и компоратор отключил, а вход так и не работает..., последующие порты порта С работают... В чем проблема? LIST p=16F690 #include <P16F690.inc> __CONFIG (_MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT) status EQU 03h porta EQU 05h trisa EQU 05h portb EQU 06h trisb EQU 06h portc EQU 07h trisc EQU 07h org 0 bcf status,RP0 ; BANK 0 bcf status,RP1 clrf porta clrf portb clrf portc bcf status,RP0 ; BANK 2 bsf status,RP1 clrf ANSEL clrf ANSELH clrf CM1CON0 clrf CM2CON0 bcf status,RP1 ; BANK 1 bsf status,RP0 movlw b'00001111' movwf trisa movlw b'01100000' movwf trisb movlw b'11011111' movwf trisc bcf status,RP0 bcf status,RP1 movlw b'11111000' movwf OPTION_REG bcf status,RP1 ; BANK 0 bcf status,RP0 movlw b'10101100' movwf T1CON bcf status,RP1 ; BANK 0 bcf status,RP0 dm3 btfss portc,0 goto dm3 bsf portb,4 goto dm3 r goto r end 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
IMXO Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 55 минут назад, MegaVoltFS сказал: а вход так и не работает и как вы это определяете? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
MegaVoltFS Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 н в протэусе и в железе не работает, но сейчас в железе другой вход проверил, тоже на С-порте и он тоже отказался работать... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 что не понятно в вопросе: как вы это определяете? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 то что вход не работает? ну так при подачи на вход единицы на порте RB4 тоже должна единица появиться)) собрал на макетке - на ней заработало, а в "устройстве " не работает, походу где то неправильная разводка... будем искать.. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 это не разводка, это ЧМЗ http://www.microchip.ru/files/d-sheets-rus/pic16_9.pdf раздел 9.10 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 (изменено) тогда выходные порты лучше включать через аккумулятор? (molw==movwf)? Я вообще сперва думал что проблема где то кроится в выборе банков памяти, уже и расписал то их по простому bcf status,RP0 bcf status,RP1, а она (программа) не работает, с четыремя банками я столкнулся первый раз, думал что в этом вся загвоздка.. спасибо за "направление", будем пробовать изменять программу, но уже не сегодня. Изменено 12 октября, 2018 пользователем MegaVoltFS 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
koms45 Опубликовано 12 октября, 2018 Поделиться Опубликовано 12 октября, 2018 (изменено) 2 часа назад, MegaVoltFS сказал: вроде и аналоговый вход отключил Не верю! "Вроде" не канает. Смотри даташит. Изменено 12 октября, 2018 пользователем koms45 0 Так ку или не ку ?! Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 13 октября, 2018 Поделиться Опубликовано 13 октября, 2018 да все у товарища в настройках правильно, а вот модель протеза глючная. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
koms45 Опубликовано 13 октября, 2018 Поделиться Опубликовано 13 октября, 2018 (изменено) Еbit 0 ADON: A/D Enable bit 1 = A/D converter module is enabled 0 = A/D converter is shut off and consumes no operating current щё раз не верю. Регистр под адресом 1F нулевой бит Чевойто моторчик у форума стал совсем противозачаточный . Изменено 13 октября, 2018 пользователем koms45 0 Так ку или не ку ?! Ссылка на комментарий Поделиться на другие сайты Поделиться
IMXO Опубликовано 13 октября, 2018 Поделиться Опубликовано 13 октября, 2018 11 час назад, koms45 сказал: Регистр под адресом 1F нулевой бит по дефолту ADCON0 = 0x00 . ! и включение/отключение АЦП на подключение аналоговых входов не влияет , за это отвечает регистр ANSEL & ANSELH , они у товарища обнулены. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 14 октября, 2018 Поделиться Опубликовано 14 октября, 2018 Нашел причину, все, оказывается работало! Все как обычно - "недобдел")) Программу я тестил на готовой плате устройства, устройство это работает от декодера DTMF на м/с 8870, сам декодер это китайский уже запаянный модуль. Вся проблема оказалась в том что напряжения выходов Q1-Q4 составляют 3,6 в, а напряжения выхода ST всего 2,3 в... А программа ждет именно сигнал ST, чтоб идти дальше, а это напряжение не соответствует лог. 1. Собрал на макетке, для проверки порта, с той программой что привел выше - все работает - ставлю в плату - ни чего не работает... Замеряю напряжение на декодере на Q1,Q2 оно 3,6в, снова контроллер ставлю в макетку, на вход даю сигнал единицы напряжением 3,6 - все работает... ставлю снова в плату - ничего не работает... уже немножко начал офигевать - что за хрень??? , а потом решил померить напряжения на выводе ST, а оно 2,3в, снова контроллер ставлю в макетку, подаю 2,3 - и фиг - ни чего не работает... А я то померив напряжения на Q1,Q2 подумал что оно на всех выходах такое же... Всем спасибо! 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 21 октября, 2018 Поделиться Опубликовано 21 октября, 2018 Доброго времени суток! Рано радовался, снова ни чего не работает))) Вобщем какая то фигня - если работают ноги portc,0 и portc,1 (они на вход) то не работает TMR1 ( счетчик работает, но вроде как будто сбивается предделитель на 1:1, хотя по настройкам стоит 1:4, сидит на внутреннем такте) А если сделать чтоб работал таймер1, то порты portc,0 и portc,1 не работают на вход, остальные работают, отключаются только эти два порта! Куда копать? Компараторы отключены... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 22 октября, 2018 Поделиться Опубликовано 22 октября, 2018 В общем я так и не понял в чем причина, но обойти удалось ее командой CLRF T1CON, перед опросом порта portc,0 и portc,1 ... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 (изменено) Доброго времени суток! Добрался я до ЖК 1602. Информацию на него выводить получилось, все работает. Вопрос - как из регистра с трехзначным числом сделать три регистра с однозначным, ну т.е. сделать регистры с количеством сотен, десятков и единиц. Хочу вывести АЦП на экран. Так то можно конечно из регистра АЦП вычитать единицу и эту еденицу накидывать в регистр едениц и как будет в регистре едениц 10, то накинем одну еденицу в регистр десяток и так далее пока регистр АЦП не дойдёт до нуля, но это как то долго. Есть ли способ это сделать проще? Заранее спасибо! Делаю на Асме. Изменено 19 ноября, 2018 пользователем MegaVoltFS 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 @MegaVoltFS , деление на 10 с остатком. Математика, 5 класс 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 А какой командой на 10 делить? Пять раз сделать сдвиг вправо?) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 11 минуту назад, MegaVoltFS сказал: какой командой на 10 делить Используйте обычное деление / и операцию вычисления остатка % x = 345; sotni = x / 100; равно 3, количество сотен кладём в регистр сотен x = x % 100; равно 45, остаток от деления на 100 des = x / 10; равно 4, количество десятков кладём в регистр десятков edin = x % 10; равно 5, остаток от деления на 10 и равно количеству единиц. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 (изменено) Это то я понял, как "математически" найти значения, но теперь не понятно как на ассамблере делить на 100, на 10, какой командой это делается? На два то можно разделить командой сдвига вправо, а на 10 или тем более 100, не повторять же эту команду по 5, по 50 раз... Пока организовал все на вычитании, сложении, сравнении, ну как изначально я писал в вопросе. Так то все работает, но хотелось бы это все организовать более правильно... Чет я сейчас посмотрел, в пик 16 то и нет команд умножения деления, так что эти операции нужно переводить в сложения вычитания.... Значит надо не делить на 100, а вычитать по 100. И не делить на 10, а вычитать по 10.... Изменено 19 ноября, 2018 пользователем MegaVoltFS 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 Не нужно делить на 100, 1000, ... Нужно всего-лишь деление на 10 с остатком. Делите число на 10, остаток складываете в регистры результата. И так пока число не будет нулевым (ну, или пока не будет нужного количества цифер). Всё просто. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 (изменено) Команд деления в пик16 нет, можно только путём пятикратного сдвига разделить на десять, а остаток высчитывать... Вот только результат будет неправильным при числах менее 10.. Завтра ещё попробую.. Изменено 19 ноября, 2018 пользователем MegaVoltFS 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Alexeyslav Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 Изобретаете велосипед. погуглите код для PIC-ов который называется BIN2BCD, когда-то я такой находил и успешно применял. Они похожи на код укуренного программиста(т.е. вы их работу гарантированно не поймёте), но на самом деле разрабатывались математиками и есть в разных вариантах - с оптимизацией по размеру кода, по скорости его работы и по размерности цифр. Официальные библиотечные процедуры - так и работают, сначала вычитает сотни пока число не станет меньше 100, потом десятки а остаток окажется единицами. 0 Учение - изучение правил. Опыт - изучение исключений. Ссылка на комментарий Поделиться на другие сайты Поделиться
Alex Опубликовано 19 ноября, 2018 Поделиться Опубликовано 19 ноября, 2018 2 часа назад, MegaVoltFS сказал: можно только путём пятикратного сдвига разделить на десять Что-то у Вас с математикой не то... 5 делений на 2 будет деление на 32 (2^5) Ищите готовые примеры, их есть в тырнете. 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MegaVoltFS Опубликовано 20 ноября, 2018 Поделиться Опубликовано 20 ноября, 2018 Про программное деление читал, но кажется как то слишком замудренно, попробую сделать на вычитаниях сотен, десятков и едениц. Пока мой код работает только на вычитаниях и сложении едениц, хоть код и короткий, но очень много операций происходит, а следовательно и времени. Всем спасибо за помощь, будем думать... 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.