Страница 4 из 8

Добавлено: Вс янв 10, 2010 01:46:15
Tigra
ooogo писал(а):
сделай по даташиту.


сегодня перепаять уже не смогу, в комнате дети спят.

Добавлено: Вс янв 10, 2010 01:51:21
ooogo
давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);

Добавлено: Вс янв 10, 2010 01:51:36
Tigra
ooogo писал(а): попробуй закоментируй эти строчки
пришлось закоментировать

Код: Выделить всё

/*                if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1;                       //проверили правильность приема команды
                        else cmd = 0;        
                b_cnt = 0;                                                      //обнулили счетчик битов
                start_cond = 0;                                                 //сбросили стартовое условие
                repeat_cond = 0;
                TCCR0B=0x00;                                                     //остановили таймер
                TCNT0=0x00;              */
иначе ругается

результата никакого

Добавлено: Вс янв 10, 2010 01:54:01
Tigra
ooogo писал(а):давай до завтра, пошел я тоже спать, еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
ОК!

Добавлено: Вс янв 10, 2010 10:39:01
ooogo
пришлось закоментировать

давай начинай думать головой, нужно закоментировать только две строчки
// if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1; //проверили правильность приема команды
// else cmd = 0;

а если у сделать как ты закоментировал, кот его знает что получится.
и прочитай хотя бы вот эту страничку avr(сто двадцать три).nm.ru/05.htm

Добавлено: Вс янв 10, 2010 11:41:49
Tigra
ooogo писал(а): еще мою строчку измени
sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
После этой замены , устройство перестало реагировать на нажатие всех пультов. (Всё время отображает Дают - бери,бьют - защищайся!)

Добавлено: Вс янв 10, 2010 11:53:46
ooogo
приемник по даташиту перепоял?

напиши так :) sprintf(lcd_buffer," bla bla bla");

Добавлено: Вс янв 10, 2010 12:00:05
Tigra
ooogo писал(а):приемник по даташиту перепоял?
сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");

Добавлено: Вс янв 10, 2010 12:04:22
ooogo
сейчас в гостях ,через 1 час буду дома, итогда быстро перепаяю и заодно попробую sprintf(lcd_buffer," bla bla bla");
это шутки у меня такие плоские :))
1. перепаиваешь строго по даташиту;
2. делаешь фото обвязки;
2. пробуешь этот исходник;
3. детально описываешь что происходит.
Через 1,5 часа вернусь проконтролирую. :))

Добавлено: Вс янв 10, 2010 13:47:56
Tigra
ooogo писал(а):
1. перепаиваешь строго по даташиту;
сделал
2. делаешь фото обвязки;
сделал
3. пробуешь этот исходник;
прошил
4. детально описываешь что происходит.
При нажатии кнопок пульта пропадает надпись"дают - бери" и в первой верхней ячейеке LSD появляются хаотичные символы, причём на каждую кнопку свой!

Добавлено: Вс янв 10, 2010 14:11:07
ooogo
зачем стока светодиодов в обвязке ик-приемника?
При нажатии кнопок пульта пропадает надпись"дают - бери" и в первой верхней ячейеке LSD появляются хаотичные символы, причём на каждую кнопку свой!
а тебе чего надо, что бы появлялось?
если цифры, то раскоментируй 1 и 3 строчки
//sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
lcd_clear();
//lcd_puts(lcd_buffer);
и библиотеку
//#include <stdio>
а эту закоментируй
lcd_putchar(cmd_1);

Добавлено: Вс янв 10, 2010 14:29:15
Tigra
зачем стока светодиодов в обвязке ик-приемника?
Когда разбирался с кодом
1 светодиод показывал сигнал с приёмника
if (PIND.2 == 0) PORTD.4 = 0; else PORTD.4 = 1;
2 светодиод зажигался если условие выполнено (мне так легче было разобраться с кодом)
Убирать их не стал если всё получится ,попробую включать и выключать их разными кнопками пульта.
если цифры,
Не только цифры ещё разные закарючки, латинские и кирилические символы.
то раскоментируй 1 и 3 строчки
//sprintf(lcd_buffer," %x %x %x %x",addr_1,addr_0,cmd_0,cmd_1);
lcd_clear();
Пробовал , вобще перестаёт реагировать на нажатие пульта

Так-же пробовал

Код: Выделить всё

lcd_putchar(cmd_0);
заменять на

Код: Выделить всё

lcd_putchar(cmd_1);
и на

Код: Выделить всё

lcd_putchar(addr_0);
каждый символ привязан к конкретной кнопке!

Кажется осталось разобраться с выводом на LSD :beer:

Добавлено: Вс янв 10, 2010 14:59:57
Tigra
Код вывода на LSD изменил следующим образом

Код: Выделить всё

                sprintf(lcd_buffer,"%x %x",addr_1,addr_0);
                lcd_clear();
                lcd_gotoxy(0,0);
                lcd_puts(lcd_buffer);
                
                sprintf(lcd_buffer,"%x %x",cmd_1,cmd_0);
                lcd_gotoxy(0,1);
                lcd_puts(lcd_buffer);
После этого в первой строчке стал выводится АДРЕС : ff 0
А во второй строчке стал выводится КОД :.. 9f
только в непонятном виде

что нужно изменить?

Добавлено: Вс янв 10, 2010 15:15:51
ooogo
странно, почему он не хочет всю строку сразу пихать!? :?
почему не в нормальном, в шестнадцатиричном виде выводит. Если в деситичном хочешь, то:
размер массива lcd_buffer уменьши до 8(9 байт lcd_buffer[8])
строки измени по такому виду sprintf(lcd_buffer,"Адрес: %3u %3u",addr_1,addr_0);
читаешь функции библиотеки stdio http://www.opennet.ru/man.shtml?topic=s ... &russian=0

Добавлено: Вс янв 10, 2010 15:27:04
ooogo
попробуй размер массива lcd_buffer уменьшить до 32 байт
unsigned char lcd_buffer[32];
может тогда целиком строчку пихать в ЖКИ будет :?

Добавлено: Вс янв 10, 2010 15:27:59
Tigra
размер массива lcd_buffer уменьши до 8(9 байт lcd_buffer[8])
строки измени по такому виду sprintf(lcd_buffer," %3u %3u",addr_1,addr_0);


Теперь всё оК ! адрес 146 109 код 106 149
Это нормально? Должны быть такие большие значения?

Код: Выделить всё

//                 if ((addr_1+addr_0) == 0xFF) addr = addr_0;                  //закомментировано, потому как в пульте First
//                         else addr = 0;                                       //16-bit адрес 0x6120, т.о. проверка адреса не проходит
             //   if ((cmd_1 + cmd_0) == 0xFF) cmd = cmd_1;                       //проверили правильность приема команды
             //           else cmd = 0; 
что делать с этой закоментированной частью кода - удалить? разве проверка не нужна?
читаешь функции библиотеки stdio http://www.opennet.ru/man.shtml?topic=s ... &russian=0
Спасибо за ссылку! Очень доступно разжована работа с выводом на LSD

Добавлено: Вс янв 10, 2010 15:36:04
ooogo
посмотри еще раз я там подправил
строки измени по такому виду sprintf(lcd_buffer,"Aгpec: %3u %3u",addr_1,addr_0);
тут не опечатка.
Очень доступно разжована работа с выводом на LSD
хоть пробегись, там про дисплеи ни слова, сайт по фряхе. :)) Но там разжована функция printf.
что делать с этой закоментированной частью кода - удалить? разве проверка не нужна?
Кто из нас программист я или ты!? Правильно ты! :))) я бы оставли, к тому в данном случае команда тоже в инверсном виде передается, но может и не передоваться. :wink:
Ну так ты чего теперь будешь конструировать с пультом?

Добавлено: Вс янв 10, 2010 15:45:48
Tigra
Ну так ты чего теперь будешь конструировать с пультом?
для начала поиграюсь светодиодами, а потом попробую реализовать свою давнюю задумку Шторы Занавеска и Экран домашнего кинотеатра на IR пульте управления.
А можно заменить IR приёмник на РАДИО 433.92 Мгц и заместо IR пульта использовать AVR+передатчик 433.92Мгц?

Добавлено: Вс янв 10, 2010 15:56:33
ooogo

Код: Выделить всё

А можно заменить IR приёмник на РАДИО 433.92 Мгц и заместо IR пульта использовать AVR+передатчик 433.92Мгц? 
тут я не силен. Как то поднимал тему но единомышленников не нашел, все заглохло.
по поводу готовых модулей на 430 МГц, удовольствие не из дешовых примерно 900 руб. передатчик и приемник. альтернатива самодельные радиомодули тут есть несколько вариантов http://vrtp.ru/index.php?act=categories&cat=206
http://vrtp.ru/index.php?act=categories ... ticle=1418
но тут уже нужны навыке работы с СВЧ и со сверхачаи, у меня таковых нет.
альтернатива радиоуправление
http://vrtp.ru/index.php?act=categories ... ticle=1496
http://vrtp.ru/index.php?act=categories ... ticle=1235
если просто приторочить радиомодуль к пульту и к приемнику, то программу приемника надо переписывать, т.к. как там еще и несущая 36 КГц появляется.

Добавлено: Вс янв 10, 2010 16:01:04
ooogo
если чего сгондобишь платой поделись, а то я не могу сделать обычного управления люстрой с пульта(с двумя релюшками), с платами у меня хреново. :(