MegaVoltFS

Members
  • Публикации

    63
  • Зарегистрирован

  • Посещение

Репутация

7 Обычный

О MegaVoltFS

  • Звание
    Осваивающийся

Информация

  • Город
    Белебей

Электроника

  • Стаж в электронике
    Менее года

Посетители профиля

704 просмотра профиля
  1. Начинающим С Нуля (Pic)

    Про программное деление читал, но кажется как то слишком замудренно, попробую сделать на вычитаниях сотен, десятков и едениц. Пока мой код работает только на вычитаниях и сложении едениц, хоть код и короткий, но очень много операций происходит, а следовательно и времени. Всем спасибо за помощь, будем думать...
  2. Начинающим С Нуля (Pic)

    Команд деления в пик16 нет, можно только путём пятикратного сдвига разделить на десять, а остаток высчитывать... Вот только результат будет неправильным при числах менее 10.. Завтра ещё попробую..
  3. Начинающим С Нуля (Pic)

    Это то я понял, как "математически" найти значения, но теперь не понятно как на ассамблере делить на 100, на 10, какой командой это делается? На два то можно разделить командой сдвига вправо, а на 10 или тем более 100, не повторять же эту команду по 5, по 50 раз... Пока организовал все на вычитании, сложении, сравнении, ну как изначально я писал в вопросе. Так то все работает, но хотелось бы это все организовать более правильно... Чет я сейчас посмотрел, в пик 16 то и нет команд умножения деления, так что эти операции нужно переводить в сложения вычитания.... Значит надо не делить на 100, а вычитать по 100. И не делить на 10, а вычитать по 10....
  4. Начинающим С Нуля (Pic)

    А какой командой на 10 делить? Пять раз сделать сдвиг вправо?)
  5. Начинающим С Нуля (Pic)

    Доброго времени суток! Добрался я до ЖК 1602. Информацию на него выводить получилось, все работает. Вопрос - как из регистра с трехзначным числом сделать три регистра с однозначным, ну т.е. сделать регистры с количеством сотен, десятков и единиц. Хочу вывести АЦП на экран. Так то можно конечно из регистра АЦП вычитать единицу и эту еденицу накидывать в регистр едениц и как будет в регистре едениц 10, то накинем одну еденицу в регистр десяток и так далее пока регистр АЦП не дойдёт до нуля, но это как то долго. Есть ли способ это сделать проще? Заранее спасибо! Делаю на Асме.
  6. Решил собрать на свое авто дистанционный GSM запуск двигателя, спаял схему, написал программу, которая пока с ограниченным функционалом, но в протэусе работает, в желе опробованы не все моменты, но больше половины функций работало и в железе. Так вот по схемотехнике - ГСМ модуль - СИМ900А, а так как он оказался без поддержки ДТМФ, то пришлось применить внешний декодер ДТМФ на м/с 8870, драйвер релюшек УЛН2003А, контроллик ПИК 16Ф690, ДС/ДС стабилизатор на ЛМ2596, бюджет схемы - около 600 рублей, если нет модуля СИМ900, то можно использовать старый кнопочный телефон, нужно чтоб только в его настройках гарнитуры был режим автоподьема трубки, собственно с простого телефона можно и начинать, т.к. для настройки СИМ900 нужен будет еще конвертер УСБ-УАРТ. Вобще цель этого проекта это освоить аппаратный УАРТ, но так как в этом модеме не оказалось ДТМФ, то , к сажелению, УАРТ так не был и изучен.... Пока собирал это устройство - успел преобрести сигналку с автозапуском... Ну в общем все и затухло... Если найдутся желающие повторить схему, то я готов продолжить работы... Алгоритм определения нейтрали такой же как и на автосигнализациях, т.е. на работающем двигателе включил схему, поднял ручник, вынул ключ из замка зажигания, вышел из автомобиля, закрыл дверь и через пять секунд двигатель заглох и ожидает звонка телефона, как поступил звонок, модем после второго гудка снимает трубку и на клавиатуре телефона нужно набрать код 1# включится зажигание1, выдержка в 10 секунд, потом включится стартер на максимальное время 3,6 сек, но как только обороты привысят 600 об/мин стартер отключится ( контроль оборотов происходит каждые 0,26 сек), через 6 сек устройство снова проверяет работу двигателя по оборотам если двигатель работает то через пять минут включит зажигание2 ( на нем сидит печка) и еще через пять минут все отключится, пока предусмотрена одна попытка запуска... Ну как то пока так, жду комментариев, а то может нынче тема дистанционного запуска двигателя не актуальна, может на днях испытаю на авто... Правда вот тока схемы нет, но если что могу подписать элементы на печатке. На печатке не нарисованны дорожки под релющки, т.к. они у меня лежат на боку из за того что не охото было дырявить плату... AvtoZapusk.DSN AZDVS.lay6 AvtoZapusk.HEX
  7. Начинающим С Нуля (Pic)

    В общем я так и не понял в чем причина, но обойти удалось ее командой CLRF T1CON, перед опросом порта portc,0 и portc,1 ...
  8. Начинающим С Нуля (Pic)

    Доброго времени суток! Рано радовался, снова ни чего не работает))) Вобщем какая то фигня - если работают ноги portc,0 и portc,1 (они на вход) то не работает TMR1 ( счетчик работает, но вроде как будто сбивается предделитель на 1:1, хотя по настройкам стоит 1:4, сидит на внутреннем такте) А если сделать чтоб работал таймер1, то порты portc,0 и portc,1 не работают на вход, остальные работают, отключаются только эти два порта! Куда копать? Компараторы отключены...
  9. Начинающим С Нуля (Pic)

    Нашел причину, все, оказывается работало! Все как обычно - "недобдел")) Программу я тестил на готовой плате устройства, устройство это работает от декодера DTMF на м/с 8870, сам декодер это китайский уже запаянный модуль. Вся проблема оказалась в том что напряжения выходов Q1-Q4 составляют 3,6 в, а напряжения выхода ST всего 2,3 в... А программа ждет именно сигнал ST, чтоб идти дальше, а это напряжение не соответствует лог. 1. Собрал на макетке, для проверки порта, с той программой что привел выше - все работает - ставлю в плату - ни чего не работает... Замеряю напряжение на декодере на Q1,Q2 оно 3,6в, снова контроллер ставлю в макетку, на вход даю сигнал единицы напряжением 3,6 - все работает... ставлю снова в плату - ничего не работает... уже немножко начал офигевать - что за хрень??? , а потом решил померить напряжения на выводе ST, а оно 2,3в, снова контроллер ставлю в макетку, подаю 2,3 - и фиг - ни чего не работает... А я то померив напряжения на Q1,Q2 подумал что оно на всех выходах такое же... Всем спасибо!
  10. Начинающим С Нуля (Pic)

    тогда выходные порты лучше включать через аккумулятор? (molw==movwf)? Я вообще сперва думал что проблема где то кроится в выборе банков памяти, уже и расписал то их по простому bcf status,RP0 bcf status,RP1, а она (программа) не работает, с четыремя банками я столкнулся первый раз, думал что в этом вся загвоздка.. спасибо за "направление", будем пробовать изменять программу, но уже не сегодня.
  11. Начинающим С Нуля (Pic)

    то что вход не работает? ну так при подачи на вход единицы на порте RB4 тоже должна единица появиться)) собрал на макетке - на ней заработало, а в "устройстве " не работает, походу где то неправильная разводка... будем искать..
  12. Начинающим С Нуля (Pic)

    н в протэусе и в железе не работает, но сейчас в железе другой вход проверил, тоже на С-порте и он тоже отказался работать...
  13. Начинающим С Нуля (Pic)

    Доброго времени суток! Ковыряюсь с пик 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
  14. Универсальная Версия Блока Зажигания На Мк

    моновпрыск то получить можно, но это уже совсем другая история... лучше конечно линейный, его и проградуировать проще и настраивать на ходу легче. полевики не используют в виду их высокого "напряжения открытия" которое нужно приложить к затвору, это особенно актуально при зимнем запуске, с зарядом емкости затвора гораздо проще справиться чем с поднятием напряжения на затворе, тем более частоты коммутации не те чтоб обращать внимание на емкость.. поэтому в самый раз либо 898е либо ИЖБТ. 898е можно вытащить из сгоревших коммутаторов, т.к. в большинстве случаев в коммутаторе перегорает "токовый" резистор, а выходной транзистор остается живой, но к сожалению они все чаще и чаще идут бескорпусные..
  15. Система Зажигания Дпкв+Дад+Ок+Эпхх+Temp+Дкз

    Ну раз пошла идея автоподсоса, то я, тоже немного подкину идеи.... по поводу того к чему привязать положение заслонки - привязывать нужно к оборотам, температуре, не мене важное, к датчику скорости, а то при начале двежения заслонка начнет открываться, на эти грабли я уже наступил... Нужно чтоб при начале движения режим устройства переходил только на контроль температуры, а от температуры уже открывалась заслонка, а при остановке, можно, снова чтоб появлялась привязка к оборотам... А вот для автозапуска, достаточно будет оборотов и температуры. Я, на своем, не доделаном, автоподсосе перед тем как тронуться - перехожу на ручное управление заслонкой, все добить его ни как не могу, а теперь и зима закончилась...