Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

И снова ШИМ

Непрочитано 09.03.2012, 00:10  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

млин я ошибся я кадод на + кинул, вот и запарился
Я извиняюсь что морочил голову, Ошибся я сори
Реклама:
SAHA_T вне форума  
Непрочитано 09.03.2012, 00:15  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: И снова ШИМ

Бывает...
omercury вне форума  
Непрочитано 09.03.2012, 00:31  
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,606 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Я извиняюсь что морочил голову, Ошибся я сори
Ошибки надо смывать... кровью (с)

Долго я не хотел мешать. Ладно, вставлю свой пятак.
Подобную задачу я решал немного иначе. Счетчик тиков запускаем в обратном счете. Тогда легче организовать соответствие кода канала и яркости.
Адаптируя под уже написанное, получится примерно так:

1. Все выводы портов = 0 (светодиоды погашены)
2. начальное значение Tic=127
3. Дальше - перебор всех каналов. Но проверка производится только на равенство:
// Канал 1
if (Tic == Ch_0) sbi(PORTA,0);
// Канал 1
if (Tic == Ch_1) sbi(PORTA,1);
// Канал 2
if (Tic == Ch_2) sbi(PORTA,2);
// Канал 3
if (Tic == Ch_3) sbi(PORTA,3);
............................................
// Канал 15
if (Tic == Ch_15) sbi(PORTC,7);


Tic--; //уменьшаем счетчик тиков
if(Tic==0 {
Tic=127; //начинаем все сначала


Таким образом, код яркости может принимать любое значение, от нуля до 127. При нуле светодиод вообще не засветится. При 127 светодиод погаснет лишь на мгновение, намного меньше длительности тика, и будет максимальная яркость.

Может что-то незначительное и пропустил, я тороплюсь.
Alex9797 вне форума  
Сказали "Спасибо" Alex9797
leartis (09.03.2012)
Непрочитано 09.03.2012, 00:57  
leartis
Частый гость
 
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
leartis на пути к лучшему
По умолчанию Re: И снова ШИМ

Ну то есть, все получилось?
Тогда на закуску:
Буква
Что можно сделать из простой Mеги128..
leartis вне форума  
Непрочитано 09.03.2012, 01:46  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: И снова ШИМ

Мне скоро придется столкнутся с этой задачей для 512 светодиодов. Покам продумываю так..
1) Массив data[x][y] (byte) 0..255 -яркость
2) x = строки, у - столбцы
3) цикл по х - строка, за один проход таймера - одна строка, с инкрементом переменной х
4) формирование массива байт для сдвиговых регистров. Если переменная яркости меньше значения массива для этой позиции - зажигаем светодиод.
5) по достижении х максимума сбрасываем его в 0 и инкрементим переменную ярксти

в общем, у нас цикл от 0 до 255 как раз для организации яркости. Светодиод горит, если значение его яркости меньше или равно текущему шагу цикла. В итоге он горит как раз на свое значение.
whoim вне форума  
Непрочитано 09.03.2012, 02:11  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

leartis АГА все работает leartis это твое изобретение буква ? Вообще очень кульно
Завтра попробую изменить код и сделать как написал Alex9797. А пока что сделал плату. Также у меня есть задумка сделать рандом чисел, что бы не повторялись, т.е слово из 15 букв и каждая буква появляется в случайном порядке но не повторяется и так пока не появится полностью слово из 15 букв. Сперва хотелось сделать просто рандом, но потом захотел усложнить задачу. Может у кого есть какие либо наброски, хотя лучше без набросков, так как на готовом многому не научишься, поэтому постараюсь сделать сам. От Вас бы я хотел услышать как лучше сделать этот рандом.
У меня есть такой вариант массив с рандомом и потом условием просто проверять есть ли на выходе этого пина 1 если есть тогда пропуск иначе делаем 1
SAHA_T вне форума  
Непрочитано 09.03.2012, 02:16  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

Мне стало очень интересно как можно подключить микру БИОСА от матери к МК и как использовать его память.
SAHA_T вне форума  
Непрочитано 09.03.2012, 04:01  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Мне стало очень интересно как можно подключить микру БИОСА
Не отвлекайтесь на посторонние вещи, думайте про рандом!

Самое простое - написать простой random-генератор на Дельфях, составить таблицу байт на 500 и запостить эту таблицу во флешь-память микропроцессора. Потом просто пользовать таблицу по кругу: всё равно никто не запомнит последовательность включения букв и будет полный рандом!
Yurkin2007 вне форума  
Непрочитано 09.03.2012, 09:06  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от Alex9797 Посмотреть сообщение
При нуле светодиод вообще не засветится.
Да ну?
Сообщение от Alex9797 Посмотреть сообщение
if (Tic == Ch_0) sbi(PORTA,0);
Что будет, если и Tic и Ch_0 равны 0 ? Или просто равны... В любом случае хоть на чуть-чуть, но мигнёт.
Лучше так
Цитата:
Tic--; //уменьшаем счетчик тиков
if(Tic==1 {
Tic=127; //начинаем все сначала
...или так
Цитата:
Tic--; //уменьшаем счетчик тиков
if(Tic==0 {
Tic=126; //начинаем все сначала
в зависимости от логики работы.

Сообщение от Yurkin2007 Посмотреть сообщение
Не отвлекайтесь на посторонние вещи, думайте про рандом!
Угу - сроки.
уЛУТшайзер будете делать потом.
omercury вне форума  
Непрочитано 09.03.2012, 10:36  
Alex9797
Почётный гражданин KAZUS.RUN
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,548
Сказал спасибо: 5,035
Сказали Спасибо 10,606 раз(а) в 3,594 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от omercury Посмотреть сообщение
Сообщение от Alex9797
При нуле светодиод вообще не засветится.
Да ну?
А какие у него шансы засветиться? В начале отработки ШИМа все светодиоды погашены. Начальное значение счетчика тиков - максимальное. В процессе отработки счетчик декрементируется. И, как только его значение становится равным нулю - тут же ему снова присваивается максимальное значение. Таким образом, при сравнении значений счетчика и параметра яркости, ни разу не произойдет совпадения, и светодиоду не будет повода включиться.

Поэтому
Сообщение от omercury Посмотреть сообщение
if (Tic == Ch_0) sbi(PORTA,0);
Что будет, если и Tic и Ch_0 равны 0 ? Или просто равны... В любом случае хоть на чуть-чуть, но мигнёт.
этого просто не будет.

И остальные ухищрения тоже излишни, и только уменьшают диапазон ШИМ
Alex9797 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СНОВА ЖКИ Gladkih Микроконтроллеры, АЦП, память и т.д 0 27.12.2009 23:48
И снова блютуз! Haulpak Ремонт оргтехники 0 10.03.2009 05:06
Снова DNA1001 R666 Информация по радиокомпонентам 0 25.01.2008 16:39
И снова температура ua_gruzin Поиск схем. Делимся схемами 0 14.02.2007 01:18


Часовой пояс GMT +4, время: 11:56.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.