БАНо

DJ_URAN
ВитГо:

3ий канал с последовательным изменением не совсем удобен 😦

отчего?

valera_o:

Использованный контроллер имеет все порты с функцией прерывания по изменению состояния.

уточните, какая микросхема необходима?

ВитГо
DJ_URAN:

отчего?

потому что когда нужно включить например фары нужно будет пройти через поворотки стопы сирену и т.д - то что включать как раз не нужно…

DJ_URAN
DJ_URAN:

То есть поехали, нажали кнопку 3-го канала вверх один раз - включились габариты + работа стопов (про поворотники пока думаю, нужны ли).
нажали опять - стал работать дальний свет при подаче газа например на 10-20%.
нажали опять - к этому всему включилась мигалка.

я ж написал.
всего 3 нажатия

valera_o

Самым лучшим по отношению цена\качество - атмега48. Все порты могут быть отслежены по прерываниям. 3 таймера на борту. В общем есть где разгуляться и стОит она меньше чем какая-нибудь аттини.
можете организовать хоть 6 каналов. Просто в прерываниях устанавливайте программные флаги, а основном теле анализируйте и распределяйте. Одним таймером измерять длительности всех каналов можно, они ведь идут последовательно, не перекрываясь.
Первые 2 канала понятны. С третьим как-то сложно. На аппе нет случайно 3-х поциционного тумблера?
Для танка пользую турниджи9х, рассовал по каналам на сколько хватило.

DJ_URAN
valera_o:

На аппе нет случайно 3-х поциционного тумблера

есть в виде кнопки. жмешь - положение меняется. от 2-х до 200 положений

ВитГо
DJ_URAN:

я ж написал.
всего 3 нажатия

ну тогда вперед!
контроллер уже посоветовали, в принципе для вашей цели пойдут многие…
скорее всего лучше будет использовать кварц для задания частоты.

для программирования можно попробовать как Си так и асм…
для Асма инициализация примерно такая

.include "2313def.inc" ;=== мой проект использовал tiny2313

; ---------------------------------------------------------------------------------------
; Константы

.equ                    LICHT = 1            ; бит порта к которому подключен светодиод
.equ                    LPORT = PORTB        ; порт к которому подключен светодиод


; ---------------------------------------------------------------------------------------
; Переменные

.DSEG

READY:                    .DB        1            ; признак готовности работать
PHASE:                    .DB        1            ; фаза ожидаемого сигнала

CH_DIV:                    .DB        2            ; значение коррекции длительности


.CSEG

.ORG     0
                        RJMP    START

.ORG     INT1addr        ; прерывание захвата каналов с приемника
                        RJMP    IRQ_INT1                    ; файл irq_int1.asm


;----------------------------------------------------------------------------------------
START:            ; главный вызов, инициализация
                        CLI

                        LDI        R16        , RAMEND            ; установка стека
                        OUT        SPL        , R16

                ; конфигурация портов ввода-вывода
                        LDI        R16        , 0
                        OUT        DDRD    , R16                ; все линии на вход
                        OUT        PORTD    , R16                ; подтяжки нет

                        LDI        R16        , 0b11110010
                        OUT        DDRB    , R16                ; пины портов на выход
                        LDI        R16        , 0b00000000        ;
                        OUT        PORTB    , R16                ; выведем на все линии ноль

                ; инициализация переменных
                        LDI        R16        , 0x00            ; признак failsave
                        STS        READY    , R16


                ; инициализация модуля захвата по входу INT1
                        LDI        R16        , 0x01            ; ожидаемая фаза сигнала - "фронт"
                        STS        PHASE    , R16
                        LDI        R16        , (1<<ISC11)|(1<<ISC10)    ; прерывание по фронту импульса
                        OUT        MCUCR    , R16            ;
                        LDI        R16        , (1<<INT1)        ; разрешение прерываний по int_1
                        OUT        GIMSK    , R16            ;

                        SEI                                ; разрешим прерывания
MAINLOOP:
;
;=== сюда нужно будет воткнуть обработчики по захваченным каналам
;
; этот код будет работать в цикле.
;
                        RJMP    MAINLOOP


.include        "irq_int1.asm"                            ; прерывание захвата (в другом файлике сохранено)

соответственно прерывание осуществляющее захват можно сделать из этого:

; файл irq_int1.asm прерывание захвата каналов

;-------------------------------------------------------------------------
;
;  ЗАХВАТ КАНАЛОВ С ПРИЕМНИКА
;
;-------------------------------------------------------------------------

IRQ_INT1:                ; прерывание по входу INT1

                        IN        ZL        , TCNT1L        ; прочитаем значение счетчика
                        IN        ZH        , TCNT1H

                        LDI        R16        , 0                ; сбросим счетчик для счета с нуля
                        OUT        TCNT1H    , R16
                        OUT        TCNT1L    , R16

                        LDS        R16        , PHASE            ; берем ожидаемую фазу сигнала

                        CPI        R16        , 1                ; фаза "фронт" ?
                        BRNE    REQ_INT1_SAVE_CH        ; получили спад!

                        ; у нас получен фронт импульса
                        LDI        R16        , 0                ; ставим флаг ожидания спада
                        STS        PHASE    , R16            ;

                        LDI        R16        , (1<<ISC11)|(0<<ISC10)    ; прерывание по спаду импульса
                        OUT        MCUCR    , R16            ;

                        RJMP    IRQ_INT1_EXIT            ; выходим


REQ_INT1_SAVE_CH:        ; получили спад
                        ; нужно сохранить длительность канального импульса
                        ; в Z длительность захваченного импульса, нужно его проанализировать для полного счастья
                        ; по идее сохранить куда нить в память чтобы потом анализировать его длительность в цикле
                        ; MAINLOOP

IRQ_INT1_EXIT:
                        RETI

правил прямо здесь (поэтому нужно будет еще раз внимательно пересмотреть алгоритм), но думаю что основная идея понятна… осталось только добавить вашу логику работы 😃

p.s. здесь только для int1 входа на прерывание (от одного канала), второй аналогичен

1 month later
Анатолий24

Подскажите пожалуйста хочу собрать огоньки с этого сайта www.homepages.paradise.net.nz/…/navlights.html есть программатор extra pic и микроконтроллер pic12а629
при програмированнии м.к. программа icprog пишет еrror
фаил на этом сайте который называется я сохраняю как txt. вставляю в icprog и нажимаю прошить м.к.
Source code (PIC12C508/9 or 12F630/75)

alexspy2
Анатолий24:

Подскажите пожалуйста хочу собрать огоньки с этого сайта www.homepages.paradise.net.nz/…/navlights.html есть программатор extra pic и микроконтроллер pic12а629
при програмированнии м.к. программа icprog пишет еrror
фаил на этом сайте который называется я сохраняю как txt. вставляю в icprog и нажимаю прошить м.к.
Source code (PIC12C508/9 or 12F630/75)

…com.ua/…/78-programmirovanie-pic-12f629.html

Анатолий24
alexspy2:

Подскажите пожалуйста хочу собрать огоньки с этого сайта www.homepages.paradise.net.nz...navlights.html есть программатор extra pic и микроконтроллер pic12а629
при програмированнии м.к. программа icprog пишет еrror
фаил на этом сайте который называется я сохраняю как txt. вставляю в icprog и нажимаю прошить м.к.
Source code (PIC12C508/9 or 12F630/75)

Спасибо с прогромматором я разобрался но коректно прошить 12f629 пока не удалось где-то на просторах интернета вчера нашел что extra pic 12f629 прошивает корректно только первый раз хотя пробовал перепрошивать 16f628 все работает

alexspy2
Анатолий24:

Спасибо с прогромматором я разобрался но коректно прошить 12f629 пока не удалось где-то на просторах интернета вчера нашел что extra pic 12f629 прошивает корректно только первый раз хотя пробовал перепрошивать 16f628 все работает

А калибровочную константу в 12f629 сохранил?

Анатолий24

Да я это знаю купил несколько 12f629 попробовал потренероваца скачал несколько небольших светодеодных схем с прошивками все работает 😃
стирается прошивается снова без проблем просто я не силен в програмировании
и не пойму что такое source code на этом саите
www.homepages.paradise.net.nz/…/navlights.html
я сохранил HEX file (PIC12F675) как txt фаил хотя написано pic12f675 а на схеме 12f679 не поиму
короче он прошивается и работает не корректно не понять как один светодиод горит второй мигает после включения аппаратуры начинают гореть еще три что не так 😵

alexspy2
Анатолий24:

не пойму что такое source code на этом саите

Это исходник в ассемблере

Анатолий24

Алексей а как его скомпелировать под pic 12f629
там на сайте лежит один hex но я так понимаю что он под другой контроллер

Анатолий24
avisenja:

Собрал всю инфу с сайта и накидал свою прошивку за 30 минут на сей девайс,
пробуйте…😉
Мож кто спасиб скажет:)

avisenja:

Вложения miggalka.zip‎ (406.9 Кб, Просмотров: 5)

большое спасибо Сеня сегодня вечером попробую собрать и завтра отпишусь

а можно схемку получьше а то листике непонятно

23 days later
egor-mav

А есть у кого-нибудь вариант который предложил Gintas??? Можете выложить?

4 months later
bocman74
avisenja:

Собрал всю инфу с сайта и накидал свою прошивку за 30 минут на сей девайс,
пробуйте…😉
Мож кто спасиб скажет:)

Можно схему четче нарисовать а то не понятно

3 months later
Vitrum82

Добрый день всем участникам данной ветки. Недавно наткнулся на нее и взяв за основу БАНО Марка Антония из сообщения 282 rcopen.com/forum/f8/topic144500/282 сделал под свои нужды.
Работают повороты, габариты, стопы, фары.
1 канал - подключается к каналу руля;
2 канал - подключается к каналу газа.
Столкнулся с двумя проблемами:

  1. Не могу придумать алгоритм реализации фонаря заднего хода (курок от себя ->нейтраль ->курок от себя)
  2. При одновременном подключении двух каналов происходит их влияние друг на друга (например при повороте руля влево и езде вперед - промаргивают стопы с периодичностью поворотов, хотя должны светить только фары и габариты). Каналы по отдельности работают как надо и повороты и приборы освещения.
    Выкладываю алгоритм в Algorithm Builder, и собранную схему в Proteus.
    Может кто подскажет в чем дело?
    Забыл указать. Смотрел каналы осцилографом: Период 10 милисекунд, сигнал от 1 до 2 милисекунд.

Avto 4_4.zip