Привет всем! Нужна ваша помощь дописать программу на ассемблере . Я только учусь программированию мк, сильно не пинайте за мои вопросы. В общем почитав некоторую литературу возникло желание создать генератор прямоугольных импульсов . Проекты в протеусе и в авр_студии выкладываю, надеюсь разберётесь. В общем смысл идеи такова, мне нужно , что бы одновременно работал генератор , без зацикливания в одной лишь подпрограмме ГПИ при нажатии на кнопку старт, что бы в момент настройки частоты менялась одновременно и частота на выходе мк PD2. В таймерах я не могу разобраться самостоятельно , как я понимаю таймер должен работать от тактового генератора самого мк... на словах вроде бы и понимаю , но на практике никак не удаётся реализовать мою идею. Помогите пожалуйста !
Я бы настроил таймер в режим CTC. Выход на ноге (OC1A или OC0A смотря какой таймер) в режимe toggle (переключаться будет при достижении топового значения в регистре OC1A или OC0A). На ноге получишь меандр со скважностью 50%. И дажее меняя регистр OC1A или OC0A будешь менять частоту импульсов. По-моему это самый простой способ, минимум настроек и минимум программного кода.
Akphantom, мне бы сам код на асме , чтобы я мог использовать его когда мне нужно как шаблон в своих проектах. и чтобы я мог прогнать в студии , чтобы понять как оно всё работает. Мне всего лишь нужно знать как подключать таймер в режиме генерации и чтобы я видел сигнал от неё на определённом выводе мк... не поможете?
Ассемблером я не пользуюсь. Я 100% только на СИ пишу программы. Я тебе напишу что куда выставить, а там уже сам. Пример для таймера0. TCCR0A установить биты WGM01 и COM0A0. TCCR0B - в битах CS02, CS01, CS00 установи нужный делитель частоты. В OCR0A запиши что хочешь, это будет топое значение. Ну начни с 0xFF. Понижая будешь менять частоту. Вот и всё. ЧТоб остановить генератор достаточно отключить ногу от её функции, сбросив бит COM0A0 в регисте TCCR0A. Ну например от кнопки. Читай даташит на контроллер, там описано как и что работает.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Читаю даташит на тини2313 и не понятно как WGM02:0 может быть равно двум ведь это одна ячейка в регистре управления TCCR1A (В СТС-режиме (когда биты установлены так:WGM02:0 = 2 )?
WGM2:0 - это не один бит. Это WGM2, WGM1, WGM0, это три бита. WGM1 и WGM0 в регистре TCCR0A. WGM2 в регистре TCCR0B. Смотри в даташите register description на нужный таймер. После запрограммирования осциллографом наблюдай меандр на 14 ноге МК.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения