Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.10.2013, 10:53  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Я знаю. Вы не поняли как делаю я. Я подсчитываю каждый импульс , это подсчитанное "время" сохраняю в память. А потом накладываю гистерезис при проверке.
Раньше, я брал уже ранее введенное время и сохранял не время каждого импульса а лог. уровень (если попали в интервал - значит единица) но этот метод хуже гораздо....
Реклама:
artyomugr вне форума  
Непрочитано 22.10.2013, 11:19  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Блин... уже голова пухнет....
Не пойму где накосячил. Некорректно пишутся или читаются данные в/с еепром 24С16....

Хочу уменьшить объем писанины, сделал так:
Код:
 ///======================= запись массива в блок ЕЕпром ====================================/// 
    
    byte_block_cnt=0; // адрес блока
     
    for(byte_mass=0; byte_mass‹7; byte_mass++) // Запись первой половины блока (одной команды ДУ)
    {
       eep_write_1byte_page(0xA2, byte_block_cnt, data_ir_eep0[byte_block_cnt]);

      for(byte_mass1=1; byte_mass1‹16; byte_mass1++)
        { 
         byte_block_cnt++;
         eep_write_page(data_ir_eep0[byte_block_cnt]); 
         
         if(byte_block_cnt›99)
         {
          byte_mass1=16;
          byte_mass=7;
          byte_block_cnt=100;
         }  
        }
        
        byte_block_cnt++;  // увеличиваем счетчик для исключения нахлеста данных
        
      i2c_stop_(); 
      delay_ms(20);    
    }

       byte_block_cnt=100; // адрес блока
           
    for(byte_mass=0; byte_mass‹7; byte_mass++) // Запись первой половины блока (одной команды ДУ)
    { 

       eep_write_1byte_page(0xA2, byte_block_cnt, data_ir_eep1[byte_block_cnt-100]);

      for(byte_mass1=1; byte_mass1‹16; byte_mass1++)
        { 
         byte_block_cnt++;
         eep_write_page(data_ir_eep1[byte_block_cnt-100]);
         
         if(byte_block_cnt›99)
         {
          byte_mass1=16;
          byte_mass=7;
          byte_block_cnt=100;
         }  
        }
        byte_block_cnt++;  // увеличиваем счетчик для исключения нахлеста данных
        
      i2c_stop_(); 
      delay_ms(20);    
    }
Пишем 200 байт ....

Код:
///======================= чтение из блока ЕЕпром ====================================/// 
    
   data_ir_eep0[0] = eep_read_(0xA2,0x00);
   
        for(byte_mass=1; byte_mass‹100; byte_mass++)
        {
        data_ir_eep0[byte_mass] = eep_read_page();
        }
        
        for(byte_mass=0; byte_mass‹100; byte_mass++)
        {
        data_ir_eep1[byte_mass] = eep_read_page();
        }
        
        data_end_read = eep_read_page_end();
читаем 200 байт.

Кто со свежей головой , взгляните пожалуйста.

На вскидку, первая сотня читается / пишется вроде нормально, остальное - нет...

Последний раз редактировалось artyomugr; 22.10.2013 в 11:23.
artyomugr вне форума  
Непрочитано 22.10.2013, 12:57  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,354
Сказал спасибо: 85
Сказали Спасибо 610 раз(а) в 369 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Сообщение от artyomugr Посмотреть сообщение
На вскидку, первая сотня читается / пишется вроде нормально, остальное - нет..
Не вдавался в подробности, но размер страницы в 2416 сколько?
Может за раз пытаетесь больше 1-й страницы писать?
pambaru вне форума  
Сказали "Спасибо" pambaru
artyomugr (22.10.2013)
Непрочитано 22.10.2013, 13:00  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Размер вроде 256 байт , всего 8 страниц.
Используется 200 байт каждой страницы , кроме первой и двух последних
Первой страницы использую около 20 байт.
artyomugr вне форума  
Непрочитано 22.10.2013, 13:59  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,354
Сказал спасибо: 85
Сказали Спасибо 610 раз(а) в 369 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Сообщение от artyomugr Посмотреть сообщение
Размер вроде 256 байт
Хм, не поленился заглянуть в дашит, для 2416:
16 byte page write mode
pambaru вне форума  
Непрочитано 22.10.2013, 14:03  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

так страница , ясен пень 16 байт , я так и пишу. А блок - 256байт
Я неправильно выразился...
8 блоков по 16 страниц каждый блок.

Последний раз редактировалось artyomugr; 22.10.2013 в 14:05.
artyomugr вне форума  
Непрочитано 22.10.2013, 14:07  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Сейчас распечатал данные при записи и данные при чтении , разбираюсь где у меня массив съехал в сторону
artyomugr вне форума  
Непрочитано 22.10.2013, 17:39  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Я победил еепромину

Код:
  ///======================= запись массива в блок ЕЕпром ====================================/// 
    
    byte_block_cnt=0; // адрес блока
     
    for(byte_mass=0; byte_mass‹7; byte_mass++) // Запись первой половины блока (одной команды ДУ)
    {
       eep_write_1byte_page(0xA2, byte_block_cnt, data_ir_eep0[byte_block_cnt]);

      for(byte_mass1=1; byte_mass1‹16; byte_mass1++)
        { 
         byte_block_cnt++;
         eep_write_page(data_ir_eep0[byte_block_cnt]);  
        }
        
        byte_block_cnt++;  // увеличиваем счетчик для исключения нахлеста данных
        
      i2c_stop_(); 
      delay_ms(20);    
    }

       byte_block_cnt=0; // адрес блока
           
    for(byte_mass=0; byte_mass‹7; byte_mass++) // Запись первой половины блока (одной команды ДУ)
    { 

       eep_write_1byte_page(0xA2, (byte_block_cnt+112) , data_ir_eep1[byte_block_cnt]);

      for(byte_mass1=1; byte_mass1‹16; byte_mass1++)
        { 
         byte_block_cnt++;
         
         eep_write_page(data_ir_eep1[byte_block_cnt]); 
        }
        byte_block_cnt++;  // увеличиваем счетчик для исключения нахлеста данных
                 
      i2c_stop_(); 
      delay_ms(20);    
    }
Пишем 224 байта

Код:
   data_ir_eep0[0] = eep_read_(0xA2,0x00);
   
        for(byte_mass=1; byte_mass‹=111; byte_mass++)
        {
        data_ir_eep0[byte_mass] = eep_read_page();
        }
        
        for(byte_mass=0; byte_mass‹=111; byte_mass++)
        {
        data_ir_eep1[byte_mass] = eep_read_page();
        }
        
        data_end_read = eep_read_page_end();
читаем 224 байта

Вот это компактный код.

Надо было всего-навсего читать/писать кратно 16
artyomugr вне форума  
Непрочитано 22.10.2013, 17:41  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Итого: одна команда весит 112 байт : )))
artyomugr вне форума  
Непрочитано 22.10.2013, 17:45  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Универсальный декодер ДУ, самый лучший алгоритм

Все что есть в хозяйстве пульты - дружат с декодером, а их у меня полтора десятка.
Даже пульт с кондиционера работает.
artyomugr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой копировщик домофонных ключей RECTO Микроконтроллеры, АЦП, память и т.д 7973 04.09.2016 02:46


Часовой пояс GMT +4, время: 22:21.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot