Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Как выровнять таймер 1 и таймер 2 чтоб начало отсчета совпадало.

Есть у атмега48 встроенные функции?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25151
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

Для привязки достаточно сбросить таймер 1 в прерывании от таймера 2 перед тем, как запустить интервал пересчета 1-го таймера.
Нарисуйте диаграмму работы алгоритма и Вам все будет понятно.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

За какое время стартует ADC?

Канал выбран все установлено.

И с момента установки бита запуска ADC. Просто хочу знать на сколько тактов раньше мне нужно запустить ADC чтоб получить имено значение того момента времени.


В протеусе получаю максимальный результат если запускаю преобразование за 4 такта до предпологаеммого пика
Последний раз редактировалось amd9800 Сб авг 02, 2014 22:09:58, всего редактировалось 1 раз.
nirq
Опытный кот
Сообщения: 758
Зарегистрирован: Вс фев 10, 2013 15:26:00

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение nirq »

amd9800 писал(а):выровнять таймер
Есть встроенная функция "запись в регистр TCNTx".
Хинт: инструкция выполняется за отличное от нуля количество тактов.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

Записываю
TCNT1H=0x00;
TCNT1L=0x00;
TCNT2=0x00;

И получится что второй таймер когда обнулится первый уже насчитает несколько тактов.
Ну в принципе - нормально.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение uk8amk »

Как выровнять таймер 1 и таймер 2 чтоб начало отсчета совпадало.

Аппаратно можно сделать только для связки TIM0+TIM1:
General Timer/Counter
Control Register – GTCCR
• Bit 7 – TSM: Timer/Counter Synchronization Mode
Writing the TSM bit to one activates the Timer/Counter Synchronization mode. In this
mode, the value that is written to the PSRASY and PSRSYNC bits is kept, hence keeping
the corresponding prescaler reset signals asserted. This ensures that the
corresponding Timer/Counters are halted and can be configured to the same value without
the risk
of one of them advancing during configuration.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25151
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

amd9800 писал(а):И получится что второй таймер когда обнулится первый уже насчитает несколько тактов.
Ну в принципе - нормально.

Наоборот, второй обнулится в момент входа в обработчик, а первый будет обнулен чуть позже. Поэтому второй насчитает несколько тактов.
Но это совершенно не принципиально.
Все равно, если не предпринимать дополнительных усилий, снять осциллограмму в "мертвой" зоне около начала периода ШИМ не получится.
Так как затраты времени на вход-выход из прерываний дадут некую минимально возможную начальную задержку в запуске АЦП.
А задержку в несколько тактов легко учесть в некотором смещении указателя выходного массива.
Что бы снять осциллограмму в этой зоне потребуется перебросить на несколько отсчетов весь процесс из обработчика по 2-му таймеру в обработчик по Output Compare. Или создать на основе еще одного таймера независимый, но синхронный с ШИМ интервал, где можно будет задать запуск АЦП в любой момент времени, включая участок малых значений таймера 2.
Аватара пользователя
sphincs
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт сен 11, 2012 09:13:52
Откуда: Брест, Беларусь
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение sphincs »

подскажите, как реализовать ШИМ для изменения яркости свечения светодиодов, подключенных через регистр сдвига 74НС595?
nirq
Опытный кот
Сообщения: 758
Зарегистрирован: Вс фев 10, 2013 15:26:00

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение nirq »

Последовательно грузить в регистр и параллельно выводить на его ногу сначала ноль, потом один.
Или наоборот.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SmarTrunk »

Если надо менять яркость всех светодиодов одновременно, то почему бы не использовать вход перевода в 3-е состояние ОЕ, подав на него ШИМ с МК?
Аватара пользователя
sphincs
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт сен 11, 2012 09:13:52
Откуда: Брест, Беларусь
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение sphincs »

SmarTrunk писал(а):ОЕ, подав на него ШИМ с МК?

да, одновременно. на всех с/д лог. 1, но нужно сделать пульсирующее свечение. про выход OE видел такую фразу, но без конкретики какой-либо. значит если я просто соединю ОЕ с выводом OC2 атмеги8, на котором реализован ШИМ, то получу требуемую пульсацию?
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение SmarTrunk »

Вроде бы, да. Ноль на ОЕ - выходы регистра работают. Единица на ОЕ - отключаются (3-е состояние). Если хотите бОльшей уверенности, поищите еще информации - это очень популярная микросхема.
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

sphincs писал(а):то получу требуемую пульсацию?


Вам нужно одинаковую яркость всем одновременно или разная яркость каждому светодиоду?
Аватара пользователя
sphincs
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт сен 11, 2012 09:13:52
Откуда: Брест, Беларусь
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение sphincs »

одинаковая для всех. на OE подал ШИМ. в протеусе осциллограф показывает, что на светодиоды так же поступает ШИМ.
но в плане общего развития послушал бы как заставить пульсировать их все по-разному
nirq
Опытный кот
Сообщения: 758
Зарегистрирован: Вс фев 10, 2013 15:26:00

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение nirq »

но всё-таки зачем
Последний раз редактировалось nirq Вт авг 05, 2014 12:11:47, всего редактировалось 1 раз.
Аватара пользователя
sphincs
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт сен 11, 2012 09:13:52
Откуда: Брест, Беларусь
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение sphincs »

nirq, уж простите, но это коммент ради коммента. был задан вопрос, я ответил. я и по поводу синхронного моргания не много инфы нашел, а про независимые моргания и вовсе не нахожу. а обсуждения ардуинщиков не очень понимаю, у них все слишком красиво одной функцией делается всегда)
nirq писал(а):
но всё-таки зачем.

чтобы сделать рамочку с бегающими по всякому огоньками. просто маленький сувенир-подарок. и заодно научиться работать с этими регистрами
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

sphincs писал(а):как заставить пульсировать их все по-разному


Например у вас 8 светодиодов.

Создаем два 8-ми размерных массива. (Глобальные переменные)
unsigned char Zapolenie[8]
unsigned char Vipoleneno[8]
Дискретизацию выберем например 10
То есть 10 это максимум - 5 половина и так далее
Timer настраиваем чтоб каждую милисекунду вызывал прерывание.
В прерывании пишем код.

Выполняем цикл от 0 до 7.
И проверяем переменную выполнено Vipoleneno[i] если она меньше Zapolenie[i].
Если меньше тогда прибавляем единичку Vipoleneno[i]++ и в регистр отправляем единичку
если нет тогда в регистр отправляем 0.

Дальше имеем переменную j которая прибавляется j++
ниже проверяем если (j>9)
Если да то обнуляем все Vipoleneno[i] и j


Теперь в основной программе вам нужно только выбирать Zapolenie[i] которое соответствует светодиоду.
Аватара пользователя
sphincs
Нашел транзистор. Понюхал.
Сообщения: 174
Зарегистрирован: Вт сен 11, 2012 09:13:52
Откуда: Брест, Беларусь
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение sphincs »

amd9800, спасибо, вроде бы осознал)
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

если что проблемы в процессе программирования пиши - помогу.
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение baghear »

Добрый день, каков принцип работы данного кусочка схемы
http://screenshot.su/show.php?img=4dd9f ... 909f55.jpg
Если включен фьюз spien то, выводы miso, mosi, sck можно использовать лишь для программирования.
В схеме автор предлагает и программировать и использовать в программе данные выводы.
Подскажите где заблуждение?
Ответить

Вернуться в «Разные вопросы по МК»