БАНо
Мне в общем-то нужна реализация света на авто, с поворотниками и полицейскими стробами.
вот, просил одного человека из ветки посодействовать, понял, что придется осваивать самому. пропал тот человек.
с фарами и свичем все понятно, но как реализовать сложные мигания типа строб - этого я не знаю.
эффект должен быть например таким: …mylivepage.ru/…/579_Полицейская_мигалка_на_15_эфе….
но это другой контроллер, соответственно, другая среда.
эффектов хотяб один-два нужно. + это должно включаться и выключаться соответственно с пульта, а это уже 3 канала обрабатывать надо.
Если исключить поворотники и оставить только аварийку (подумал, как нелепо будут мигать поворотники, учитывая то, что поворачивать приходится часто и нелолго. они и не нужны в общем-то), то каналов 2, то что надо.
все зависит от того какой контроллер применяется.
например у atmega8 есть 2 входа внешних прерываний- на них и заводить каналы… третьего входа нет… соответственно описанный вами способ применить не получиться, по крайней мере “влоб”…
Кстати у ПИКов один вход инт , но можно использовать ещё четыре входа - прерывание по изменению уровня, обычно исп под клаву, но можно под что угодно, так-что 5 входов прерывания - без проблем;)
Мне в общем-то нужна реализация света на авто, с поворотниками и полицейскими стробами.
вот, просил одного человека из ветки посодействовать, понял, что придется осваивать самому. пропал тот человек.
с фарами и свичем все понятно, но как реализовать сложные мигания типа строб - этого я не знаю.
эффект должен быть например таким: …mylivepage.ru/…/579_Полицейская_мигалка_на_15_эфе….
но это другой контроллер, соответственно, другая среда.
эффектов хотяб один-два нужно. + это должно включаться и выключаться соответственно с пульта, а это уже 3 канала обрабатывать надо.
Если исключить поворотники и оставить только аварийку (подумал, как нелепо будут мигать поворотники, учитывая то, что поворачивать приходится часто и нелолго. они и не нужны в общем-то), то каналов 2, то что надо.
помоему путаешь сам эффект с командой на его включение…
давай по порядку - сколько и какие эффекты нужны?
- поворот влево
- поворот направо
- фары
- стопы
- аварийка
- полицейская мигалка
- сирена
что еще ?
Кстати у ПИКов один вход инт , но можно использовать ещё четыре входа - прерывание по изменению уровня, обычно исп под клаву, но можно под что угодно, так-что 5 входов прерывания - без проблем;)
изголиться то можно, вопрос только - не жалко каналов приемника на эту фигню?
логику можно сделать примерно такую:
по каналу управления (1) передаем импульс 1000 если нужно включить эффект, 1500 если действие не требуется, 2000 если нужно выключить эффект
по каналу выбора (2) передаем импульс выбора эффекта:
1000 - левый поворот
1125 - правый поворот
1250 - аварийка
1375 - сирена
1500 - мигалка полицейская
1625 - фары
1750 - стопы
1875
2000
кстати, самое время определить что за аппаратура у нас будет - потому как если данные значения аппа выдавать не сможет, то нужно придумать другой алгоритм передачи команд
В общем. схема не очень простая. (кстати, аппа 2,4 от FlySky модель GT3B известна, полагаю)
задействоваться будет 3 канала:
1 - канал руля, его команды снимаются для передачи команд по включению/отключению соответствующих поворотников.
2 - канал газа, его команды - это дальний свет фар и стопы.
3 - канал дискретный, но с возможностью изменения сигнала на единицу (-100%, -99%, -98% … 0 … +98%, +99%, +100%. 2 кнопки вверх и вниз, имитирующие работу стика пошагово. также есть возможность изменения шага: -100%, -90%, -80% или -100%, -75%, -50%… в общем как угодно и в любом направлении)
3-й канал в идеале должен отвечать за:
включение/отключение света вообще.
включение работы дальнего света.
включение мигалки.
То есть поехали, нажали кнопку 3-го канала вверх один раз - включились габариты + работа стопов (про поворотники пока думаю, нужны ли).
нажали опять - стал работать дальний свет при подаче газа например на 10-20%.
нажали опять - к этому всему включилась мигалка.
но говорят, 3 канала нереал. программа сложная выйдет.
Как знакома схема программы…😉
Использованный контроллер имеет все порты с функцией прерывания по изменению состояния.
Смотрим в описание контроллера, распределяем ноги для входов каналов, прописываем прерывания по этим каналам и одним таймером отсчитываем длительности каждого из импульсов. Потом составляем алгоритм переключения. В теле main сравниваем имеющиеся значения или флаги, которые можно поднимать при опреденных значениях, и зажигаем то что нужно. Предварительно распределив ноги выходов.
Забейте на пики, раз уж начали на атмеле писать. 😉
3ий канал с последовательным изменением не совсем удобен 😦
3ий канал с последовательным изменением не совсем удобен 😦
отчего?
Использованный контроллер имеет все порты с функцией прерывания по изменению состояния.
уточните, какая микросхема необходима?
отчего?
потому что когда нужно включить например фары нужно будет пройти через поворотки стопы сирену и т.д - то что включать как раз не нужно…
То есть поехали, нажали кнопку 3-го канала вверх один раз - включились габариты + работа стопов (про поворотники пока думаю, нужны ли).
нажали опять - стал работать дальний свет при подаче газа например на 10-20%.
нажали опять - к этому всему включилась мигалка.
я ж написал.
всего 3 нажатия
Самым лучшим по отношению цена\качество - атмега48. Все порты могут быть отслежены по прерываниям. 3 таймера на борту. В общем есть где разгуляться и стОит она меньше чем какая-нибудь аттини.
можете организовать хоть 6 каналов. Просто в прерываниях устанавливайте программные флаги, а основном теле анализируйте и распределяйте. Одним таймером измерять длительности всех каналов можно, они ведь идут последовательно, не перекрываясь.
Первые 2 канала понятны. С третьим как-то сложно. На аппе нет случайно 3-х поциционного тумблера?
Для танка пользую турниджи9х, рассовал по каналам на сколько хватило.
На аппе нет случайно 3-х поциционного тумблера
есть в виде кнопки. жмешь - положение меняется. от 2-х до 200 положений
я ж написал.
всего 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 входа на прерывание (от одного канала), второй аналогичен
Подскажите пожалуйста хочу собрать огоньки с этого сайта www.homepages.paradise.net.nz/…/navlights.html есть программатор extra pic и микроконтроллер pic12а629
при програмированнии м.к. программа icprog пишет еrror
фаил на этом сайте который называется я сохраняю как txt. вставляю в icprog и нажимаю прошить м.к.
Source code (PIC12C508/9 or 12F630/75)
Подскажите пожалуйста хочу собрать огоньки с этого сайта www.homepages.paradise.net.nz/…/navlights.html есть программатор extra pic и микроконтроллер pic12а629
при програмированнии м.к. программа icprog пишет еrror
фаил на этом сайте который называется я сохраняю как txt. вставляю в icprog и нажимаю прошить м.к.
Source code (PIC12C508/9 or 12F630/75)
Подскажите пожалуйста хочу собрать огоньки с этого сайта 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 все работает
Да я это знаю купил несколько 12f629 попробовал потренероваца скачал несколько небольших светодеодных схем с прошивками все работает 😃
стирается прошивается снова без проблем просто я не силен в програмировании
и не пойму что такое source code на этом саите
www.homepages.paradise.net.nz/…/navlights.html
я сохранил HEX file (PIC12F675) как txt фаил хотя написано pic12f675 а на схеме 12f679 не поиму
короче он прошивается и работает не корректно не понять как один светодиод горит второй мигает после включения аппаратуры начинают гореть еще три что не так 😵
вот эта схема тоже классная
tomsha.com/shop/product_info.php?products_id=76&os…
для модели но платная кто бы помог с прошивкой
не пойму что такое source code на этом саите
Это исходник в ассемблере
Алексей а как его скомпелировать под pic 12f629
там на сайте лежит один hex но я так понимаю что он под другой контроллер
Не силен я в программировании, но вот здесь понятно как и чем radiokot.ru/start/mcu_fpga/avr/02/