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

 
 
40 страниц V  « < 14 15 16 17 18 > »   
Reply to this topicStart new topic
> Чем или как создать управление микросхемой Lc7821
Xenia
сообщение May 14 2015, 23:51
Сообщение #226


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 02:47) *
Код
#define  RC5_T                0x6F1F  // F_CPU=16 000 000, PRESCALER=1
#define    FAULT_TIME_RC5       RC5_T*17        // не должно быть более 65535

Warning[Pe061]: integer operation result is out of range F:\Work\Projects\ATMEL\IAR\C\TEMPLATE_FOR_XENIA\rc5.c 69
Как с этим быть?


Поставьте divisor, такой, чтобы соблюдалось условие RC5_T*17>65535. Наобум кажется, что 16 подойдет. sm.gif

Но у меня компилятор почему-то такой ошибки не выдает.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 14 2015, 23:55
Сообщение #227


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Цитата(Xenia @ May 15 2015, 06:51) *
Поставьте divisor, такой, чтобы соблюдалось условие RC5_T*17>65535. Наобум кажется, что 16 подойдет. sm.gif

? Не понял.
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 14 2015, 23:59
Сообщение #228


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 02:55) *
? Не понял.


Поставьте divisor=16 (он же prescaler), от этого RC_T уменьшится в 16 раз. Только надобно разобраться, в какой регистр этот дивизор вставлять.
Т.е. при ваших 16 МГц при divisor=16 величина RC5_T будет в точности такой же как у love777888, т.е. 0x06F1. Потому что у вас 16 МГц,а у него 1 МГц.

P.S. Прошу прощения, у таймере 1 в Меге8 не бывает divisor=16, а бывает только 8 или 64.
Значит берем divisor=8, для него получаем RC5_T=0x0DE3. Это число, будучи умноженным на 17, влезет в два байта:
0x0DE3 * 0x11 = 0xEC13
А дивизор 8 добавляем в строку:
TCCR1B = _BV(CS10) | _BV(ICNC1) | _BV(CS11);
Короче говоря, любыми средствами запускаем Timer1 с периодом 1.778 мсек. Если OCR1A получается слишком велико, то урезаем ее дивизором.

P.P.S. А если все равно ничего не выходит, то выставите фузами своей Меге8 режим работы от внутреннего осциллятора - тогда у вас станет как у love777888. Убедитесь, что RC5 работает, а потом вернитесь на кварц, одновременно увеличив дивизор на таймере.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 03:25
Сообщение #229


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Ну да, придется начать с 1 МГц. Тем более что на 1 МГц все работает.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 04:52
Сообщение #230


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Ксения, у вас в начале программы эти строки:
Код
// Timer


  TCCR1A = 0;
  TCCR1B = (1<<WGM12) | 0x2;  // CTC-mode + divisor=8 (fast)
//  TCCR1B = (1<<WGM12) | 0x4;  // CTC-mode + divisor=256
  TCNT1 = 0;
#ifdef MYBOARD
  OCR1A = 0x7CFF;  // period = 500 ms error = 0.000% at 16.364 MHz / 256 (fast = 125 ms)
#else
  OCR1A = 0x0F41;  // period = 500 ms error = 0.006% at  1.000 MHz / 256 (fast = 125 ms)
#endif


Не могли бы разъяснить?
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 15 2015, 04:55
Сообщение #231


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 06:25) *
Ну да, придется начать с 1 МГц. Тем более что на 1 МГц все работает.

Скажите, отчего вы не хотите ответить, какую марку фотоприемника вы себе купили? Я уж и в личку вам писала и в теме вопрос задавала:
Цитата(Xenia @ May 14 2015, 14:57) *
P.S. Я вам в личке вопрос задала про то, какой фотоприемник вы купили. Ответьте пожалуйста.

но вы упорно отвечать не хотите.
Ведь не исключено, что у вас не работает программа только потому, что фотоприемник выбран неверно.

Цитата(demiurg1978 @ May 15 2015, 07:52) *
Ксения, у вас в начале программы эти строки:
...
Не могли бы разъяснить?

Это мусор sm.gif, остался от прошлого применения Timer1, с тех времен, когда именно по нему опрашивались кнопки, а фотодатчика в схеме еще не было. В последних версиях программы я это место закомментарила. Однако вреда от него нет, поскольку в функции инициализации Rc5_SetRx() регистры этого таймера все равно получают новые значения. Именно поэтому я и проглядела, что в программе сохранился прошлый код. Т.е. сейчас в главном модуле программы (main.c) Timer1 вообще не упоминается, т.к. теперь он задействован в rc5.c.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 05:07
Сообщение #232


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Я ответил еще вчера. Сообщение 217. Такой же как у вас.

Не могли бы разъяснить значение continue в этих строках?
Код
// Командный монитор
      switch( lastcmd)  // to upper case
      { case 0:
          continue;
        case 0x1B:  // Esc
          break;
        case 'R':
        case 'r':
          PushStr( "Restart\r\n");
          Flush();
          Restart();
          break;
        case 'S':
        case 's':
          Flag ^= Flag_Stop;
          PushStr( (Flag & Flag_Stop) ? "Stop\r\n" : "Start\r\n");
          break;
        case 'V':
        case 'v':
          PushStr( "Version "VERSION"\r\n");
          break;
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
          continue;
      }


Я ни разу не видел continue в switch-case.

Сообщение отредактировал demiurg1978 - May 15 2015, 05:08
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 15 2015, 05:13
Сообщение #233


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 08:07) *
Не могли бы разъяснить значение continue в этих строках?
Я ни разу не видел continue в switch-case.


А return и goto вы внутри switch-case видели? sm.gif Это вещь вполне допустимая, поскольку continue, return и goto не являются спецификой switch-case, а представляют собой обычные операторы, которыми могут быть заполнены блоки case.

В данном случае continue относится к внешнему циклу for, внутри которого оказалась вложена конструкция switch-case. Тут мне не хотелось, чтобы lastcmd обнулялся после выхода из switch, а хотелось, чтобы она сохранила код последнего нажатого символа, т.к. тот задействован в interrupt-процедуре опроса кнопок для их эмуляции с терминала.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 05:16
Сообщение #234


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Return я и сам применяю. А вот насчет continue я не знал. То есть continue означает зацикливание внутри switch?

Сообщение отредактировал demiurg1978 - May 15 2015, 05:20
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 15 2015, 05:24
Сообщение #235


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 08:16) *
Return я и сам применяю. А вот насчет continue я не знал. То есть continue означает зацикливание внутри switch?


Да нет же! Этот continue - часть внешнего оператора for! Именно к нему он и относится. А то, что этот continue оказался внутри блока switch ничего не меняет. Ровно так же этот continue мог оказаться внутри блока if.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 05:27
Сообщение #236


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Можно листинг main? Мне еще далеко до завершения. Прикручиваю в своем проекте RC5. Щас паять сяду.
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 15 2015, 05:30
Сообщение #237


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(demiurg1978 @ May 15 2015, 08:27) *
Можно листинг main?

Можно.

Цитата(demiurg1978 @ May 15 2015, 08:07) *
Я ответил еще вчера. Сообщение 217. Такой же как у вас.

Поняла, а то в теме я это место прозевала. У нас с вами другой фотоприемник, чем у love777888, но выбрала я именно его, поскольку TSOP31236 способен работать не только на 5-вольтовом питании, но и на 3-вольтовом (Supply voltage: 2.5 V to 5.5 V). А мой МК от 3.3 вольт питается.
Go to the top of the page
 
+Quote Post
love777888
сообщение May 15 2015, 06:50
Сообщение #238


Местный
***

Группа: Участник
Сообщений: 207
Регистрация: 1-05-15
Из: Брест
Пользователь №: 86 471



Ксения все работает, задержка есть, что будем делать дальше?, для расширения требуется новый контроллер(функции DEFEAT, LOUDNESS, но не принципиально можно сделать на CD4013) новый контроллер скоро будет, но для грундика вроде все ясно, единственный ньюанс в выключенном состоянии, горит светодиод (один из наших 6-ти диодов). Если можно сделать при выключении чтобы все диоды мигнули один раз и выключились. Тоесть не логично усилитель в дежурке, а кроме сетевого диода горит еще наш один диод. Спасибо!

Сообщение отредактировал love777888 - May 15 2015, 06:51
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 15 2015, 07:03
Сообщение #239


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(love777888 @ May 15 2015, 09:50) *
Ксения все работает, задержка есть, что будем делать дальше?, для расширения требуется новый контроллер(функции DEFEAT, LOUDNESS, но не принципиально можно сделать на CD4013) новый контроллер скоро будет, но для грундика вроде все ясно, единственный ньюанс в выключенном состоянии, горит светодиод (один из наших 6-ти диодов). Если можно сделать при выключении чтобы все диоды мигнули один раз и выключились. То есть не логично усилитель в дежурке, а кроме сетевого диода горит еще наш один диод.


Думаю, что пока новый МК не подоспел, вам лучше заняться ревизией ножек сгоревшего японского процессора, с целью выяснения, чем там еще можно полакомиться. Ведь если это логические уровни (высокий или низкий) на прием или передачу, то ровно то же самое можем сделать и мы любым другим МК. Я ранее уже подначивала вас этим заняться, но вы не ответили.

Ну, а пока можно и поразвлечься, мечтая о схеме на новой Меге. Например, такой: sm.gif

Черненькие ножки хотелось бы пока зарезервировать (не использовать), а все остальные из свободных могут быть заняты делом. Таких 11 штук.
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 15 2015, 07:37
Сообщение #240


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Ну как-то так... Видео.
Правда всплыл нюанс. Пульт оправляет команды каждые 100 мс. Это видно по Mute. А всплыло на включении дежурного режима. "Уселок" включен. Нажимаю POWER. Он уходит в спячку и заново просыпается. Пока решил так, перед входом в дежурный или рабочий режим обнуляю DataOK. Сижу репу чешу, как обойти этот момент, повтор команд каждые 100 мс...
Go to the top of the page
 
+Quote Post

40 страниц V  « < 14 15 16 17 18 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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