Программирование AVR

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Программирование AVR

Сообщение ChipKiller »

oleg110592 писал(а):Тут вы не много не правы - LPT можно применить к параллельному программированию
.. можно. Можно и через COM-порт управлять режимом параллельного программатора, только речь об этом не шла ...
Резистор писал(а):Ещё вопрос: При запуске avreal32.exe выдаёт ошибку : "запуск программы невозможен так как на компьютере отсутсвует DIPortIO.dll
avreal32 использует "5 проводов", так что речь о (ISP Mode)....

ЗЫ. еще раз - LPT - это параллельный интерфейс и путать его с режимом программирования не корректно ИМХО...
Резистор
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс фев 03, 2013 13:11:59

Re: Программирование AVR

Сообщение Резистор »

Познакомился с AVR studio 4. Возник вопрос: можно ли через него прошивать микроконтроллёр? С помощью программатора Altera Byte Blaster'а? Одни говорят -да, другие нет.
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3868
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Программирование AVR

Сообщение Engineer_Keen »

4-я студия работает с портами COM и USB, байт-бластер насколько я помню подключается к LPT...
borys
Держит паяльник хвостом
Сообщения: 927
Зарегистрирован: Вт сен 07, 2010 19:27:48
Откуда: Ташкент

Re: Программирование AVR

Сообщение borys »

В этом нет великой проблемы, прошить МК можно и без студии, например с помощью PonyProg. Разумеется при наличии
hex-файла. И с фьюзами не начудить.
Резистор
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс фев 03, 2013 13:11:59

Re: Программирование AVR

Сообщение Резистор »

В Настройках платы программатора (в PonyProg2000) выдаёт ошибку. Все подробности на картинке. Кто-нибудь знает что-нибудь?
Вложения
Ошибка.png
Вот такая ошибка
(144.12 КБ) 345 скачиваний
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Программирование AVR

Сообщение ChipKiller »

для обращения к LPT нужен драйвер
Резистор
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс фев 03, 2013 13:11:59

Re: Программирование AVR

Сообщение Резистор »

Скачал вот этот архив. Установил. Но ошибка всё-равно есть.
Вложения
dlportio-32-exe.zip
Тот самый архив
(167.05 КБ) 142 скачивания
Резистор
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс фев 03, 2013 13:11:59

Re: Программирование AVR

Сообщение Резистор »

Всё. Ошибка самоустранилась. :)) Теперь появился вопрос по программированию. Как в AVRasm создаются случайные числа в заданном промежутке?
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование AVR

Сообщение Alexeyslav »

Разрабатывается алгоритм и....
Алгоритм несложный - берем случайное число, делим по необходимому модулю затем остаток от деления прибавляем к нижней границе.
Резистор
Открыл глаза
Сообщения: 63
Зарегистрирован: Вс фев 03, 2013 13:11:59

Re: Программирование AVR

Сообщение Резистор »

Нет вы меня не поняли (точнее я не правильно сформулировал вопрос) :? . Мне нужно получить случайное число (с помощью какой-нибудь функции типа rand в С) .
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование AVR

Сообщение Alexeyslav »

Так значит надо написать такую функцию, угу. Обычно это делается на сдвиговых регистрах с обратной связью.
Когда-то делал случайное число на основе 33-битного регистра с отводом от {не помню какого} разряда. Еще можно поискать уже готовые реализации.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Программирование AVR

Сообщение Jack_A »

В Ассемблере, в отличие от С, нет библиотеки с готовыми функциями Rand, Sin, Sqrt и т.д. Все надо пис`ать самому или выуживать из источников. Можно запустить таймер с циклическим перезапуском и брать значение оттуда ( аппаратное решение ), но это если обращение к нему будет не слишком частым. А программно можно реализовать простейший, к примеру, алгоритм : число в 2-байтовой рабочей ячейке умножаем на 5, отбрасывая разряды, уходящие в перенос. Получим псевдослучайное число, равномерно распределенное на интервале [1..65535] . Начальное значение числа должно быть нечетным и быть >= 32767.

Ну навроде так :

СпойлерMOV R16,R24
MOV R17,R25
ADD R24,R16
ADC R25,R17
ADD R16,R16
LSL R17
ADD R16,R16
LSL R17
ADD R24,R16
ADC R25,R17


И усё ! В R24,R25 -- псевдослучайное число в диапазоне [1..65535] Именно псевдослучайное, бо чисто случайные числа можно сгенрировать только аппаратно.
Последний раз редактировалось Jack_A Вс июн 02, 2013 12:19:15, всего редактировалось 4 раза.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Программирование AVR

Сообщение ChipKiller »

Мне нужно получить случайное число
... вопрос в том насколько случайное - способов получения много (вопрос в доступной периферии - таймеры, компаратор и т.д.)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование AVR

Сообщение Alexeyslav »

Это линейный ГСЧ, характеристики ниже плинтуса. Гораздо проще и качественней генератор получается на основе регистров сдвига.

формула простая: R[0] = R[M] xor R[N] и последующий сдвиг влево. Где R - регистр сдвига разрядностью N с отводом на M бите.
Где-то встречал табличку оптимальных значений M и N при которых генератор имеет максимальный период повторения. Сейчас никак найти не могу, все-таки 10 лет назад гугл был поменьше размерами, искать было проще...

Все же, самый правильный ГСЧ - генератор белого шума подключенный к АЦП, но там своих проблем много - идеального белого шума не существует а стало быть существует максимальная частота выборок при которой последовательность становится не такой уж случайной и более предсказуемой.

Попробуй, сделать ГШ на германиевом диоде/переходе транзистора(они очень сильно шумят, особенно ГТ109) и подать этот сигнал на АЦП с достаточно низким уровнем опорного напряжения(чтобы не усиливать исходный сигнал).
balvik
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Ср июн 23, 2010 12:49:59

Re: Программирование AVR

Сообщение balvik »

Резистор писал(а):Прочитал обучалку. А в частности раздел посвящённый микроконтроллерам. Появилось два вопроса:
-Как прошивать контролёр?
-И есть какие-нибудь книги и тому подобное по программированию данных контроллеров для начинающих с описанием всех процессов в МК и функций, прерываний и т.д и т.п?


Резистор, почитай сайт http://easyelectronics.ru/ , и еще мое мнение как и у автора вышеуказанного сайта , начинать нужно с ассемблера.
Для этого в сундуке кота есть хорошая книга Джона Мортона Микроконтроллеры AVR вводный курс. Легко понимается и все программы там пишутся в avr студио.
в мире так много интересного !!!!!!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Программирование AVR

Сообщение Gudd-Head »

Alexeyslav писал(а):формула простая: R[0] = R[M] xor R[N] и последующий сдвиг влево. Где R - регистр сдвига разрядностью N с отводом на M бите.
Где-то встречал табличку оптимальных значений M и N при которых генератор имеет максимальный период повторения. Сейчас никак найти не могу, все-таки 10 лет назад гугл был поменьше размерами, искать было проще...

http://www.newwaveinstruments.com/resou ... r_lfsr.htm

А вот пример использования: http://radiokot.ru/circuit/digital/game/03/
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование AVR

Сообщение Alexeyslav »

Там общая теория для многоразрядных регистров с произвольным количеством отводов. Не нашел я там оптимального значения M для заданного N. При неподходящем отводе, сокращается размер цикла генератора и смысл от большей разрядности как-то сам по себе пропадает.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Программирование AVR

Сообщение YS »

Не нашел я там оптимального значения M для заданного N.


Искомое ближе, чем кажется. :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Программирование AVR

Сообщение Alexeyslav »

В табличке по ссылке нет этих данных. Там какие-то случаи с двумя и тремя отводами, а по ссылке дальше(для бльшей разрядности) идет документ в котором просто рябит от цифр и непонятно ЧТО ЭТО ТАКОЕ. Какому-нибудь прожженому математику это может и будет интересно, но уж точно не большинству.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Программирование AVR

Сообщение Gudd-Head »

Alexeyslav писал(а):Там общая теория для многоразрядных регистров с произвольным количеством отводов.

Ну, значит, в глаза долбимся :)
Там для регистров различной длины даны номера бит, с которых надо заводить ОС для получения М-последовательности.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «AVR»