roboforum.ru

Технический форум по робототехнике.

Помогите с написанием программы

Змей-Горыныч » 03 мар 2005, 07:39

А ещё у 16-битного таймера/счётчика в AVR есть регистр сравнения! Можно туда загружать необходимое значение (правда его придется ещё определить  :roll: ) и по прерыванию при совпадении делать чего хочешь. Я сам делал на ATMege162 (там 2 таких т/с и по два регистра сравнения у каждого) 4 канальный генератор задержанных импульсов. С компа задавал 4 задержки от 125 нс до 8 секунд(для кварца на 8 МГц), и записывал их в эти 4 регистра сравнения. По совпадению в соответствующий канал выдавался импульс.

Arsen » 28 мар 2005, 16:54

Змей-Горыныч писал(а):А ещё у 16-битного таймера/счётчика в AVR есть регистр сравнения! Можно туда загружать необходимое значение (правда его придется ещё определить  :roll: )


Зачем определять? есть программа вот тут: Расчет таймера называется.

nest » 28 мар 2005, 18:43

setar писал(а):
aliens писал(а):

и как сделать чтобы переменной случайно присваивалось значение (типа как random на си)
:D  :roll:

А вот это открытый вопрос, я пока не знаю.


несколько раз попадались (пока что битые) ссыли на алкгоритм случайного числа на ассемблере.
сам же думаю делать на внешнем источнике шума.

Змей-Горыныч » 29 мар 2005, 05:55

Arsen писал(а):
Змей-Горыныч писал(а):А ещё у 16-битного таймера/счётчика в AVR есть регистр сравнения! Можно туда загружать необходимое значение (правда его придется ещё определить  :roll: )


Зачем определять? есть программа вот тут: Расчет таймера называется.

А если время задержки у тебя постоянно должно меняться в процессе работы, в зависимости от внешних воздействий? Внешняя программа не поможет, всё равно придется самому создавать алгоритм определения необходимого значения для счётчика.

=DeaD= » 29 мар 2005, 09:39

nest писал(а):несколько раз попадались (пока что битые) ссыли на алкгоритм случайного числа на ассемблере.
сам же думаю делать на внешнем источнике шума.


=DeaD= писал(а):Униформным генератором случайных чисел называется формула:

RND[n+1]=(RND[n]*A+B) mod C.

Если вы не пишете систему криптографической защиты - вам врядли нужно что-то большее. А если все-таки пишете - покупайте аппаратный генератор случайных чисел.

nest » 31 мар 2005, 10:14

=DeaD=, а теперь всё это на ассемблере ? :)

=DeaD= » 31 мар 2005, 10:16

А вот и не угадали - я пока не освоил асм на AVR :)


Rambler\'s Top100 Mail.ru counter