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

 
 
> Генератор, меандры, точность, опрос...и т.д., непонятно с ходом программы...
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
Ответов
MakFatum
сообщение Mar 26 2006, 16:29
Сообщение #2


Участник
*

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



Насчет умножения частот-модуляции попробовал в протеусе такое:
Код
while(1){

if((PINB.1)&&(PINB.3)) {
PORTC.5 = 1;
           }
     else
           PORTC.5 = 0;
};


вроде сработало....По крайней мере пачки импульсов идут. ТОлько мой старенький комп повисает на пару минут...

Вот интересно будет на железе проверить..

Нет, прерываниями не пойдет,
там у меня 5 несущих и две модулирующих,..можно ведь все в МК сделать...

Не получается у меня пока стройный алгоритм опроса..
маленький Цикл while() убрал...Частоты Fнем и Fмод. выводятся теперь одновременно.

Код
if (!PINB.4) {              //PD0  12Hz
        TCCR1A=0b01000000;
        TCCR1B=0b00001101;  

      
      OCR1AL=0x28;  
                     };          
        
        if (!PIND.1) {              //PD0  420Hz
        TCCR2=0b00011010;  

      
       OCR2=0x94;  
                     };

Так теперь перед включением у-ва придется заранее устанавливать ключи (т.е. неоперативно и неудобно), а чтобы изменить частоту придется или reset жать или включать-выключать, что также не совсем удобно...

Как мне устроить периодический опрос?...в принципе у меня раз в сек. или даже больше опросил и хватит, чаще не обязательно...
нужно чтобы процессорное время сильно не отнималось (похоже ему тяжело дается умножение)
По еще одному 8-разрядному таймеру в прерывании опрос что-ли?

Сообщение отредактировал MakFatum - Mar 26 2006, 16:33
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MakFatum   Генератор, меандры, точность, опрос...и т.д.   Mar 24 2006, 16:19
- - vet   1) Будучи единожды настроен, таймер будет работать...   Mar 24 2006, 19:24
- - MakFatum   Насчет прерываний - спасибо, попробую... Вообщем ч...   Mar 26 2006, 12:27
- - WHALE   обьедини свои кнопки через диоды и заведи на вход ...   Mar 26 2006, 16:11
- - 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 Текстовая версия Сейчас: 19th July 2025 - 21:15
Рейтинг@Mail.ru


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