реклама на сайте
подробности

 
 
> Генератор, меандры, точность, опрос...и т.д., непонятно с ходом программы...
MakFatum
сообщение Mar 24 2006, 16:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 54
Регистрация: 7-12-05
Пользователь №: 11 912



Здравствуйте!...

приведу кусочек и спрошу потом

Все инициализировал...
дальше сам кучочек программы:

Код
if (!PIND.1) {              //PD0  420Hz
  do {    
       OCR2=0x94;  
         }
  while ((PIND>>1)&0);

                     };


Ну так всё и повторяется дальше для различных частот.
Вопрос 1. Всю программу с вышеприведенным куском эмулировал в протеусе (принтскрин ниже)
Дословно код переводится ведь так???: если на PIND.1 НЛУ, то заносить в регистр сравнения OCR2 число соответствующее частоте до тех пор пока выполняется условие (есть НЛУ на PIND.1 ).
В протеусе почему-то еще не успев нажать кнопку уже выдается частота 420 (хотя следуя программе она должна появиться только при нажатии И удержании кнопки (т.е. НЛУ) на пине), а при отпускании пропасть (этого тоже кстати не происходит). Т.е. ситуация такая: вместо кнопок должны быть переключатели, и пока есть НЛУ - есть соответствующая частота, а когда нет НЛУ - ничего нет.
А у меня просто при кратковременном нажатии она появляется и так не пропадает при отпускании. Где собака...?
Вопрос 2. Дискретность установки частоты у 8-разрядного таймера оставляет желать лучшего даже при 1/8 кдел., т.е. получается допустим 420+-2Гц (иногда и больше) (многовато, нужно хотя бы +- 1Гц). Формула нахождения частоты : fOCn=fclk_/2*N(1+OCRn) почему-то не работает, нахожу не по ней...Как улучшить показатели? 16-разрядный для модулирующих у меня...
Вопрос 3. Самое интересное и самое непонятное пока для меня: Как мне вывести программно в какой-нибудь пин порта модуляцию 2-х частот (то бишь перемножить) логическое "И"???
В лоб не получается... Теории об этом не нашел...



Сообщение отредактировал MakFatum - Mar 24 2006, 16:24
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Mar 24 2006, 19:24
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



1) Будучи единожды настроен, таймер будет работать (и выдавать импульсы), пока его не выключат. В приведённом коде выключения таймера нет.
Далее,
условие while ((PIND>>1)&0); никогда не сработает, поскольку побитовое И с нолём всегда даст ноль.
PIND.1 так и проверяйте:
while (PIND.1); //в CodeVision
while (PIND&0x02); //другие компиляторы С

2) Возьмите чип с двумя 16-бит таймерами.

3) Насчёт перемножения частот - один таймер выдаёт первую частоту на вывод контроллера, на другой частоте работает второй таймер, в прерывании таймера №2 попеременно разрешается и запрещается сигнал от таймера №1 на ноге контроллера.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MakFatum   Генератор, меандры, точность, опрос...и т.д.   Mar 24 2006, 16:19
- - MakFatum   Насчет прерываний - спасибо, попробую... Вообщем ч...   Mar 26 2006, 12:27
- - WHALE   обьедини свои кнопки через диоды и заведи на вход ...   Mar 26 2006, 16:11
- - MakFatum   Насчет умножения частот-модуляции попробовал в про...   Mar 26 2006, 16:29
- - WHALE   не понял,чем тебя прерывание по нажатию не устроив...   Mar 26 2006, 16:48
- - MakFatum   Спасибо за помощь!... Опрос портов делаю по пе...   Mar 27 2006, 15:09
- - MakFatum   Может где в синтаксисе ошибка?... пробовал после р...   Mar 28 2006, 08:17
- - MakFatum   собрал значит, ключи зацепил, частоты генерит, но ...   Apr 1 2006, 16:51
|- - defunct   Цитата(MakFatum @ Apr 1 2006, 18:51) собр...   Apr 1 2006, 23:49
- - MakFatum   Нашел ошибку... по невнимательности порта А (на ко...   Apr 2 2006, 09:33
- - WHALE   У тебя-же эти выходы натроены на выход,соответстве...   Apr 2 2006, 09:58
|- - MakFatum   Цитата(WHALE @ Apr 2 2006, 15:58) У тебя-...   Apr 2 2006, 11:03
- - MakFatum   а протеусе почему все тогда путем?... или лучше ем...   Apr 2 2006, 10:08
- - WHALE   А 100% полагаться ни на какой симулятор нельзя Пр...   Apr 2 2006, 10:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016