Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Генератор импульсов на attiny2313. HELP!

Вс июн 03, 2012 16:11:28

Привет всем! Нужна ваша помощь дописать программу на ассемблере . Я только учусь программированию мк, сильно не пинайте за мои вопросы. В общем почитав некоторую литературу возникло желание создать генератор прямоугольных импульсов . Проекты в протеусе и в авр_студии выкладываю, надеюсь разберётесь. В общем смысл идеи такова, мне нужно , что бы одновременно работал генератор , без зацикливания в одной лишь подпрограмме ГПИ при нажатии на кнопку старт, что бы в момент настройки частоты менялась одновременно и частота на выходе мк PD2. В таймерах я не могу разобраться самостоятельно , как я понимаю таймер должен работать от тактового генератора самого мк... на словах вроде бы и понимаю , но на практике никак не удаётся реализовать мою идею. Помогите пожалуйста !
Вложения
ПРОЕКТЫ.rar
(81.62 KiB) Скачиваний: 363

Re: Генератор импульсов на attiny2313. HELP!

Вс июн 03, 2012 18:11:50

Я бы настроил таймер в режим CTC. Выход на ноге (OC1A или OC0A смотря какой таймер) в режимe toggle (переключаться будет при достижении топового значения в регистре OC1A или OC0A). На ноге получишь меандр со скважностью 50%. И дажее меняя регистр OC1A или OC0A будешь менять частоту импульсов. По-моему это самый простой способ, минимум настроек и минимум программного кода.

Re: Генератор импульсов на attiny2313. HELP!

Вс июн 03, 2012 18:18:34

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

Re: Генератор импульсов на attiny2313. HELP!

Вс июн 03, 2012 18:44:10

Ассемблером я не пользуюсь. Я 100% только на СИ пишу программы. Я тебе напишу что куда выставить, а там уже сам.
Пример для таймера0. TCCR0A установить биты WGM01 и COM0A0. TCCR0B - в битах CS02, CS01, CS00 установи нужный делитель частоты.
В OCR0A запиши что хочешь, это будет топое значение. Ну начни с 0xFF. Понижая будешь менять частоту. Вот и всё. ЧТоб остановить генератор
достаточно отключить ногу от её функции, сбросив бит COM0A0 в регисте TCCR0A. Ну например от кнопки. Читай даташит на контроллер,
там описано как и что работает.

Re: Генератор импульсов на attiny2313. HELP!

Вс июн 03, 2012 20:46:41

Читаю даташит на тини2313 и не понятно как WGM02:0 может быть равно двум ведь это одна ячейка в регистре управления TCCR1A (В СТС-режиме (когда биты установлены
так:WGM02:0 = 2 )?

Re: Генератор импульсов на attiny2313. HELP!

Пн июн 04, 2012 06:29:56

WGM2:0 - это не один бит. Это WGM2, WGM1, WGM0, это три бита. WGM1 и WGM0 в регистре TCCR0A. WGM2 в регистре TCCR0B. Смотри в даташите register description на нужный таймер. После запрограммирования осциллографом наблюдай меандр на 14 ноге МК.
Тема закрыта