Страница 518 из 628

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

Добавлено: Пн июн 30, 2014 11:05:07
akl
Вычёркиваете из схемы фиксированные производителем лапы (RESET, OC1B, AIN0, AIN1, ADC6, ADC7). Оставшиеся лапы назначаете самостоятельно, с учётом возможности совмещения функций ввода-вывода (индикация-кнопки).

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

Добавлено: Пн июн 30, 2014 11:15:07
amd9800
В том то и дело что ни одного целого порта не остается для семисегментного индикатора и думаю как же быть?
Неудобно работать с пинами с разных портов.
Ну если так уж быть как объединить скажем 5 пинов одного порта и 3 другого порта как один целый 8 битовый массив?
Чтоб сразу записать 8 битовое значение.

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

Добавлено: Пн июн 30, 2014 11:23:56
Alexeyslav
Выключать, чтобы не было непредсказуемого поведения пока будете загружать регистры. Это крайне необходимо если ШИМ у вас управляет силовыми ключами иначе можно силовые ключи пожечь и т.д. и т.п.

Если вы это делаете в самом начале после сброса то дополнительно отключать не нужно, таймер и так стоит.
А если в прошивке используется "программный сброс" переходом на нулевое прерывание то это делать просто необходимо.
Учитывая целый ряд обстоятельств, лучше его отключить даже если знаете что он отключен - кто его знает куда потом в будущем пойдет этот код...
ни одного целого порта не остается для семисегментного индикатора и думаю как же быть?
немного доработать аппаратную часть, добавить регистр сдвига для сегментов - он потребует всего 3-х выводов от контроллера. В другом случае, если это решение неприемлемо - написать подпрограмму(назвать её что-то вроде set_segment) которая на входе возьмет один байт и распихает его по нужным портам используя логические выражения и прочее - да хоть побитно. Изменяя аппаратную конфигурацию достаточно будет просто переписать эту подпрограмму. Впрочем этот вариант универсален - программу переписывать не надо, а подпрограмма может с такой же эффективностью работать и с внешним регистром сдвига.

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

Добавлено: Пн июн 30, 2014 15:04:13
Wanderer123
Добрый день! Попросили сделать УЗО с выводом на семисегментный индикатор тока утечки (дифференциального тока) в диапазоне 1-100мА. Хочу все это сделать на ATmega8. Как вывести данные с МК на индикатор я знаю, но как подружить трансформатор тока и АЦП МК нет. Буду благодарен за любую информацию. Заранее спасибо!

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

Добавлено: Пн июн 30, 2014 20:04:26
Alexeyslav
Ну так, там не просто трансформатор а дифференциальный трансформатор. да очень просто, с него подаете напряжение через обязательный ограничитель(чтобы не спалить МК) прямо на вход АЦП, и измеряете с частотой примерно 50*16гц, со входного напряжения можно взять сигнал перехода через ноль - привязать моменты начала накопления сумм к переходу через ноль, итого у вас каждый период сетевого напряжения будет значение тока просуммированного 16 раз за период. Останется поделить его на 16(обычный логический сдвиг вправо, но вообще делить стоит после умножения чтобы не потерять младшие разряды числа) и умножить на коэффициент пропорциональности(зависит от коэфициента трансформации, нагрузки трансформатора тока и т.д. - этот коэфициент поддается рассчету при помощи обычной арифметики) и у тебя получится ток. Только учти, АЦП не измеряет отрицательные значения а значит у тебя измерено будет ровно в 2 раза меньше номинала - т.е. надо будет умножить показания еще на два.

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

Добавлено: Вт июл 01, 2014 12:17:12
Аlex
ibiza11 писал(а):так 4.56мкс :)) только пакет то извне надо задавать)
Дак он извне и задаётся, просто я добавил код для переустановки пакета, чтобы молотил постоянно.
Этот кусок :

Код: Выделить всё

   if(!--BitNum){
     BitNum=16;
     Packet=0xAAAA;
   }
можно убрать. Тогда будет "одиночный выстрел" и съэкономится ещё несколько тактов (уберётся условие).Хотя нет, вру, условие убрать не получится. Нужно контролировать окончание передачи.
ibiza11 писал(а): мне кажется вариант akl тут несомненно лидер по скорости.
Не могу спорить, т.к. не знаю ассемблера АВР. Но, сдаётся мне, что там в передаче фигурирует всего один байт.
В принципе, можно ещё немного подукоротить время выполнения, сделав побайтовый вывод данных. Выиграем время за счёт сдвига переменной.
Сделать можно всё, даже на ЯВУ, но нужно хорошо знать свой ассемблер и компилятор, и то, во что он разворачивает код.

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

Добавлено: Ср июл 02, 2014 01:32:09
amd9800
ibiza11 писал(а):Изображение
не могу понять чем отличается режим 11 от 9.

В протеусе я получаю один и тот же результат.

Хотя у 11 написано только phase correct, а у 9 еще и frequency, то меняя значение в OCR1A частота меняется в обеих режимах.

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

Добавлено: Ср июл 02, 2014 05:25:01
Kavka
Найдите 10 отличий :) Вторая колонка с права на лево.
Запись в регистр OCR1A может производиться сразу при выполнении команды вывода в порт в/в (immediate), а может буферизироваться и производиться, когда счётчик находиться в "нижней" (bottom) или "верхней" (top) точке счёта. Чтобы не было искажения импульсов, когда запись в порт в/в производится в середине цикла счёта.

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

Добавлено: Ср июл 02, 2014 19:45:00
Starmarik
Друзья, у меня вопрос. Можно ли использовать выход RESET микроконтроллера для перезапуска контроллера часто? Я сделал таймер для аквариума, запускается с момента подачи питания, и чтоб корректировать, сместить временной интервал, нужно его перезапустить. Я сделал на одном выходе обнуление переменных, работает прекрасно. Но смущает, что RESET болтается без дела, а целый порт для обнуления переменных задействован. Не будет ли вреда контроллеру, если я буду перезапускать его RESETом?

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

Добавлено: Ср июл 02, 2014 19:47:56
Chettuser
А команда RESET не? :)
Если конечно в Вашем МК она есть. :)))

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

Добавлено: Ср июл 02, 2014 20:30:51
Starmarik
Chettuser писал(а):А команда RESET не? :)
Если конечно в Вашем МК она есть. :)))
У меня ATTINY13, собсно даже не задумывался над этим. Прекрасно работает и обнуление переменных, но меня уж очень смущает то, что нога RESET без дела :)

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

Добавлено: Ср июл 02, 2014 20:53:03
Chettuser
Вот так и вырастают... хакеры :)))

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

Добавлено: Ср июл 02, 2014 21:07:02
Starmarik
Chettuser писал(а):Вот так и вырастают... хакеры :)))
:))) :))) :)))

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

Добавлено: Чт июл 03, 2014 00:47:56
beniamin91
Добрый вечер уважаемые коты.
Помогите новичку в одном вопросе.
Нужно собрать управление инкубатором которое будет поддерживать определенную температуру и каждые 2 часа переворачивать яйца.
Как можно решить проблему что бы МК считал время и включал мотор и при этом не перестал бы смотреть за температурой?
Вот код, на синтаксис не обращайте внимания все точки с запятым потом поставлю. Как можно переделать алгоритм?

Код: Выделить всё

t = 37
c = 7200000
s = 0


if (температура < t){Включить нагреватель}
else{ if(температура > t){Выключить нагреватель} }




/////////////////нужно проверять нижнее условие по каждые 2 часа//////////////////

delay_ms(c)


if (s = 0)
   {Включить матор по часавой
    s++}
else { if(s = 1)
	{Включить матор против часавой
	 s == 0}
     } 


температура берется с датчика ds18b20
мотор будет отключатся по достижению латков яиц двум концевикам (прикрепил картинку)

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

Добавлено: Чт июл 03, 2014 14:43:26
Pink-Pank
Про таймеры почитайте. А заодно и грамматику полистайте.

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

Добавлено: Чт июл 03, 2014 15:06:27
Starmarik
beniamin91, можно сделать отсчет времени таймером. Например, как сделал я для аквариума - настройка таймера на прерывание по совпадению, вот расчет значений на 100 Гц, тоесть на 1/100 секунды -(за расчет отдельное спасибо oleg110592) 1/100 секунды равно 100Гц, Внутренний генератор тини13 9.6 MHz.
В документации есть формула из нее получается:
OCR=(Fclk/Focn*N)-1
N - коэффициент предделителя (1, 8, 64, 256, or 1024)
OCR=(9600000/100*N)-1=(9600000/(100*1024))-1= 92.75=93 . Далее в функции прерывания таймера ставишь увеличение переменной, напр. sec++, а в основном цикле пишеш отсчет времени, например, if (sec==6000){min++; sec=0} - одна минута, if (min==60){hour++; min=0} - один час. Далее условие на два часа - if(hour==2){включаем переворот яиц}, и так далее. Если интересно, то позже скину тебе код, который я делал для включения света и кормушки в аквариуме.

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

Добавлено: Чт июл 03, 2014 15:13:06
Pink-Pank
судя по коду, который предоставил beniamin91 - это его первая попытка программирования. И дальше нее он не пойдет. Ему нужно, чтобы кто-то за него написал. А это несколько в другом разделе.

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

Добавлено: Чт июл 03, 2014 16:07:49
Starmarik
Pink-Pank писал(а):судя по коду, который предоставил beniamin91 - это его первая попытка программирования. И дальше нее он не пойдет. Ему нужно, чтобы кто-то за него написал. А это несколько в другом разделе.
Моя первая попытка программирования это было моргание светодиода и залоченный МК :) Но я увидел, всю мощь, так сказать, контроллеров, и изучаю дальше. Думаю, у товарища beniamin91 все еще впереди :))

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

Добавлено: Чт июл 03, 2014 19:15:53
beniamin91
Starmarik спасибо за отзывчивость.
Я тоже думал что надо сделать с таймером но увы еще не совсем понимаю как работать с ним.
Starmarik писал(а): Если интересно, то позже скину тебе код, который я делал для включения света и кормушки в аквариуме.
буду очень признателен за код. Думаю уловлю суть работы и смогу доделать свой.
О какого мнения вы на счет регулятора температуры? По вашему такой код будет нормально держать температуру или же я совсем нечего полезного не написал?

Код: Выделить всё

if (температура < t){Включить нагреватель}
else{ if(температура > t){Выключить нагреватель} }
Pink-Pank писал(а):судя по коду, который предоставил beniamin91 - это его первая попытка программирования. И дальше нее он не пойдет.
не первая попытка и не последняя. О вы что с пелёнок занимались контролерами или же без начало сразу дошли до конца ?
Pink-Pank писал(а):Ему нужно, чтобы кто-то за него написал. А это несколько в другом разделе.
Ты не в моем голове и не знаешь что мне нужно, свои негативные эмоции держите в себе!

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

Добавлено: Чт июл 03, 2014 20:25:46
aam
Скажите, а кто-нибудь пробовал анализировать протокол RF-пультов для освещения типа таких:
Изображение
?
Как они вообще работают и насколько они унифицированы?

Хотелось с помощью покупного пульта управлять самодельным контроллером для люстры.

Помимо этого видел радиомодули УАРТ. В принципе они позволили бы реализовать что угодно. Но не делать же пульт самому.