Зарегистрирован: Пт сен 05, 2008 05:15:14 Сообщений: 16
Рейтинг сообщения:0
Щас скажу,для чего переменная в паузе.Неохота было голову ломать с таймерами и решил сделать программный генератор импульсов-длительность начинается с 0,1мс и увеличивается с шагом 0,1 мс,частота до 100 гц,сделал таблицу,где например 50 гц=20000мкс (chast).Алгоритм примерно такой:
x=chast-длитель.;
PIND=1;
пауза(длитель.);
PIND=0;
пауза(х);
while(1);
Может это глупо,но пока ничего лучше в голову не приходит.
Последний раз редактировалось кошак Пт окт 17, 2008 21:37:55, всего редактировалось 1 раз.
Зарегистрирован: Чт мар 20, 2008 20:33:43 Сообщений: 173
Рейтинг сообщения:0
Мне бывало нужным использовать переменную в качестве аргумента функциии delay, причем запомнилось именно с мкс. Потому, что с ними функция не работает.
кошак, есть рабочий проект генератора прямоугольных импульсов на mega8515 для CV1.24.6
из функций
-задание произвольной частоты с клавиатуры
-задание скважности с клавиатуры
-триггер отключения по заданному количеству импульсов
-инвертирование импульсов
-автоматическое сохранение параметров в EEPROM
дисплей 20x4. клавиатура матрица 4x4.
DEL при включении - вход в меню настроек.
Диапазон частоты: 100-22000 Гц
Скважность: 1/2-1/25
Число импульсов триггера: 0-65535
схема и модель в протеусе (версии 6.9 по моему)
Погрешность достаточная для домашнего использования. Реализовано при помощи таймеров.
Без их использования, при помощи функций delay нужной точности добиться не удается ибо не ассемблер.
Простора для доработки - море
Пользуйся на здоровье! Писал давно, работало отлично! Просьба не нарушать копирайта:)
Вложения:
Комментарий к файлу: прошивка + исходники + проект Proteus gen.rar [171.13 KiB]
Скачиваний: 486
Последний раз редактировалось efko Сб окт 25, 2008 20:19:34, всего редактировалось 1 раз.
Добрый день! У меня несколько глупый вопрос: как мне в CVAVR организовать прерывание которое выполняется только во время нажатия кнопки т.е. при отпускании обработка прерывания обрывается на том месте на котором она выполнялась!
Добрый день! У меня несколько глупый вопрос: как мне в CVAVR организовать прерывание которое выполняется только во время нажатия кнопки т.е. при отпускании обработка прерывания обрывается на том месте на котором она выполнялась!
Интересно, сколько вы намериваетесь в этом прерывании сидеть?
как в CVAVR организовать прерывание которое выполняется только во время нажатия кнопки
Настроить прервание по изменению уровня на INT0 соотв. нажатию кнопки. Настраивать удобно мастером CVAVR , а пример прерываний с кнопочками и симуляцией работы есть на стр. 3 у меня в домашней страничке.
Степаныч писал(а):
т.е. при отпускании обработка прерывания обрывается на том месте на котором она выполнялась
Это не понял совсем.
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Как я понял, автор вопроса хочет, что-бы программа выходила из функции прерывания по отпусканию кнопки...Т.е. нажал-прерывание, как только отпустил-вышел. Я поэтому и спросил про время.
Интересно, сколько вы намериваетесь в этом прерывании сидеть?
Да я понимаю что долго засиживаться в обработчике прерывания мягко сказать не оч. хорошо но все же мне нужно чтоб при отпускании кнопки обработка прерывания останавливалась на том месте на котором она выполнялась!!!А вообще поделюсь идеей: есть контроллер mega16 и есть lcd я вот захотел собрать простенькое устройство которое бы показывало линейной шкалой уровень загрузки процессора компа! К примеру взять минус от индикатора загрузки протца пустить на мк при подаче на мк этого минуса к примеру во второй строке лсд "загорается" первый символ потом через 50 ms(к примеру), если минус на ножке не исчез, то второй символ загорается и тд а если на ножке нет минуса тогда те символы которые уже горят помаленьку тухнут( тоже к примеру через 50 ms) таким образом как бы показывается уровень загрузки протца!!!Вот такая идея!!!
А у Вас есть индикатор загрузки проца, к которому Вы все это собираетесь подключать?
Упс!!Извиняйте за безграмотность! !!Ну да ладно, естественно индикатор активности винчестера!!!Хотя мне эту идею просто охота осуществить для обучения программированию в CVAVR!!!Ну вот я уже начал писать программу мож че и получится !
Сейчас этот форум просматривают: alex-wolf и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения