шим на обычных портах микроконтроллера
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
Подскажите как реализовать шим к примеру на pic12f675 ? CCP порты в пример не приводить ,не могу понять как на pic16f877,реализовано управление по двум проводам с помощью шим,18 команд по 8 на каждом проводе ,управление сидит на RB2,RB3 - где нету встроенного шим - на pic как я понил сам шифратор,насчет дешифратора не знаю что там,так как нету возможности заглянуть .
- Реклама
Сначала спросил про один камень, а потом начал разговаривать сам собой про другой.
ШИМ можно организовать аппаратно (при наличии такого модуля в камне) или программно, с использованием головы и рук программиста....
ШИМ можно организовать аппаратно (при наличии такого модуля в камне) или программно, с использованием головы и рук программиста....
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
програмно?,и каким же образом?
PORTC.0=1;
delay_ms(5);
PORTC.0=0;
delay_ms(5);
так?
можете привести пример как реализовать еще шим програмно? ,возможно ли менять токо ширину одного импульса ? можно поподробнее
PORTC.0=1;
delay_ms(5);
PORTC.0=0;
delay_ms(5);
так?
можете привести пример как реализовать еще шим програмно? ,возможно ли менять токо ширину одного импульса ? можно поподробнее
Последний раз редактировалось AlekseyEnergo Вс май 04, 2014 20:10:09, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал. Предупрежден!
Причина: Нарушение пункта 2.7 правил форума. Подредактировал. Предупрежден!
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
я почитал ,но мне нужна программная реализация,как изменять ширину одного имульса ?,можно ли как -нибудь обычным програмным шим с контроллера менять ширину одного импульса подрубив к нему дополнительно 74hc138?
Последний раз редактировалось AlekseyEnergo Вс май 04, 2014 20:11:14, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал.
- Реклама
- Сообщения: 19495
- Зарегистрирован: Чт фев 20, 2014 18:57:55
разбить на "кванты времени" прерываниями и включать/выключатьsirha писал(а): как изменять ширину одного имульса ?
почему именно 138 ? ну так то вообще возможны любые извращенияsirha писал(а): можно ли как -нибудь обычным програмным шим с контроллера менять ширину одного импульса подрубив к нему дополнительно 74hc138?
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
А можете привести пример програмного кода на СИ как это реализовать плиииз.Morroc писал(а): разбить на "кванты времени" прерываниями и включать/выключать
пытаюсь понять как работает пультMorroc писал(а): почему именно 138 ? ну так то вообще возможны любые извращения
http://radiokot.ru/forum/viewtopic.php?f=57&t=103019
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
спс Юрий полезная информация,хочу написать новый код для pic16f877 поэтому и интересуюсь всем этим,процессор сгорел
,morrec подскажи как можно реализовать что ты написал
- Вложения
-
- шим.rar
- хотелось бы получить что то типо этого
- (11.41 КБ) 254 скачивания
Последний раз редактировалось AlekseyEnergo Вс май 04, 2014 20:12:12, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал.
Причина: Нарушение пункта 2.7 правил форума. Подредактировал.
- Сообщения: 19495
- Зарегистрирован: Чт фев 20, 2014 18:57:55
>причем меняется не весь шим а токо определенный импульс
а может это импульсно-кодовое управление по типу как в ик -пультах ? тогда можно попробовать копнуть в сторону самообучающихся пультов управления и "обучить" его с помощью работающего
или просто поснимать лог. анализатором все импульсные команды, загнать их в прошивку в виде структур
cmd[0].high = xxx;
cmd[0].low = yyy;
...
cmd[n].high = 0;
cmd[n].low = 0;
и тупо делать цикл типа
n = 0;
while (cmd[n].high > 0) {
port.high;
delay_ms(cmd[n].high);
port.low;
delay_ms(cmd[n].low);
n++;
}
если прибор во время передачи команды ничего больше не делает и 2 команды одновременно не передает - прокатит наверное
а может это импульсно-кодовое управление по типу как в ик -пультах ? тогда можно попробовать копнуть в сторону самообучающихся пультов управления и "обучить" его с помощью работающего
или просто поснимать лог. анализатором все импульсные команды, загнать их в прошивку в виде структур
cmd[0].high = xxx;
cmd[0].low = yyy;
...
cmd[n].high = 0;
cmd[n].low = 0;
и тупо делать цикл типа
n = 0;
while (cmd[n].high > 0) {
port.high;
delay_ms(cmd[n].high);
port.low;
delay_ms(cmd[n].low);
n++;
}
если прибор во время передачи команды ничего больше не делает и 2 команды одновременно не передает - прокатит наверное
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
- Сообщения: 550
- Зарегистрирован: Ср авг 17, 2011 23:12:30
пасиб большоеMorroc писал(а):
n = 0;
while (cmd[n].high > 0) {
port.high;
delay_ms(cmd[n].high);
port.low;
delay_ms(cmd[n].low);
n++;
}
если прибор во время передачи команды ничего больше не делает и 2 команды одновременно не передает - прокатит наверное
- Сообщения: 193
- Зарегистрирован: Ср фев 16, 2011 22:58:23
ШИМом кодируется только асинхронная частотно-импульсная последовательность DTMF например. У вас обычный асинхронный протокол, вопрос только какой. По двум проводам в промышленности это может быть: CAN (скорее всего вероятнее он), EIA-485, MicroLan(1-wire) (в нем время бита определяет его значение). Так как обмен скорее всего двухсторонний,
Что же делать: попытаться рассекретить физический интерфейс, узнать его, потом уже копаться в протоколе. Если покажете осциллограммы будет намного проще. Может даже кто то узнает свою работу
то это скорее всего не выход. Как определить направление передачи данных? Оборудование же как то наверняка знает что подключен пульт? Вообще программная реализация интерфейсов говорит о далеко не высоком качестве ПРОМЫШЛЕННОГО оборудования.Morroc писал(а):просто поснимать лог. анализатором все импульсные команды, загнать их в прошивку в виде структур
Что же делать: попытаться рассекретить физический интерфейс, узнать его, потом уже копаться в протоколе. Если покажете осциллограммы будет намного проще. Может даже кто то узнает свою работу
- Сообщения: 19495
- Зарегистрирован: Чт фев 20, 2014 18:57:55
все может быть, пульт пульту рознь
у него вот такой
http://radiokot.ru/forum/download/file.php?id=181271
вполне может быть без обратной связи
у него вот такой
http://radiokot.ru/forum/download/file.php?id=181271
вполне может быть без обратной связи
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
а может просто дистанционка для какой-нить модельки машинки/самолетика - дык в этом разделе "дистанционное управление моделями..." и искать надобно. 
- Сообщения: 19495
- Зарегистрирован: Чт фев 20, 2014 18:57:55
ну почти так и есть, только моделька очень большая, я так понимаю
для взрослых дядек
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Для PIC12F675 делал программу для управления шаром

китайская начинка вместе с трансом сдохла. Таймер на 555 не удовлетворил по параметрам.
Сваял на пике
Там ШИМ 20 кгц с 25% заполнением
увы на асме
Но принцип прост - вкл - таймер, выкл - таймер

китайская начинка вместе с трансом сдохла. Таймер на 555 не удовлетворил по параметрам.
Сваял на пике
Там ШИМ 20 кгц с 25% заполнением
увы на асме
Но принцип прост - вкл - таймер, выкл - таймер
- Вложения
-
- PDM_Lit.asm
- (3.67 КБ) 641 скачивание
ради этого дела МК шить? Ну я не знаю прям...
А почему нет.
Камень стоит 50 р. Обвязка копейки.
Для 555 стоит 10 р + обвязка.
Да и на 555 я угребся делать 25% заполнение при заданной частоте. Помню перепробовал разные схемы и ни одна не понравилась в работе.
В моем случае транс был от строчника и ему для оптимальной работы нужна была конкретная частота и конкретная скважность.
Камень стоит 50 р. Обвязка копейки.
Для 555 стоит 10 р + обвязка.
Да и на 555 я угребся делать 25% заполнение при заданной частоте. Помню перепробовал разные схемы и ни одна не понравилась в работе.
В моем случае транс был от строчника и ему для оптимальной работы нужна была конкретная частота и конкретная скважность.
На логической микросхеме, типа К561ЛА7, делается элементарно с двумя диодами и переменником. Можно точно выставить и частоту и скважность.
У китаез как раз на логике и была сделанна. Но мы хотели круче, выше и светлее. Планировал кнопку запилить для переключения режима работы (меняется вид молний от частоты и мощности), но делал не себе и стало лень.




