Проблемы с нехваткой памяти Arduino + IR + Raw code

У меня проблема с моим новым проектом с Arduino + ИК-эмиттером + большими необработанными кодами.

Я пробовал так:

https://gist.github.com/jjmjr/41ed083c8229d0218c962641c5af27b0

Как вы можете видеть, каждый из моих необработанных кодов кондиционера огромен, поэтому я попробовал с помощью progmem использовать команду «a» (как включить) на последовательном порту, чтобы отправить первую строку из необработанных кодов IR, но это не сработало.

Кто-нибудь может мне помочь?

Спасибо

, 👍0

Обсуждение

«не сработало» — это очень плохое описание наблюдаемого результата… оно не содержит никакой информации, которую можно было бы использовать для решения проблемы., @jsotola

пожалуйста, добавьте листинг кода к вашему вопросу..... используйте кнопку {}, чтобы отформатировать его как код, @jsotola

Пожалуйста, поясните в своем вопросе, что код, о котором вы спрашиваете, находится в ссылке на github.com в вопросе. Фактически, вы можете даже скопировать часть этого кода в свой вопрос. Если это правда, думаю, я понимаю, как можно сократить массив данных вдвое. Разделите все значения в массиве на 50 и измените тип с unsigned int на unsigned char. Это должно работать до тех пор, пока все полученные числа (после деления на 50) меньше 256. Затем, когда вы вызываете методы библиотеки IR, умножьте значения массива на 50, чтобы восстановить исходное значение., @st2000

...Сообщите нам, сработает ли вышеизложенное, и я скопирую его в ответ, который вы сможете принять., @st2000

использование массивов в качестве PROGMEM не поможет, если вы загружаете их в ОЗУ целиком. @st2000, один из кодов — 25060., @Juraj

Ах, я понимаю вашу точку зрения. Мемкопия. @J Милан, вероятно, вам понадобится взломать библиотеку, чтобы правильно обработать «сжатые» данные, или решить эту проблему, используя сообщения и библиотеки (т. е. не необработанные IR-данные), которые подходят для вашей платформы. Альтернативно, существует множество различных типов платформ Arduino. То, что у вас есть, может поместиться в процессор с большим количеством флэш-памяти и оперативной памяти., @st2000

Пожалуйста, опубликуйте MCVE вашего кода. Обычно MCVE является хорошим способом решения проблем., @MichaelT


1 ответ


1

Это первые несколько пар данных.

Вы можете видеть, что они повторяются по предсказуемому шаблону.

Уменьшите объем данных в скетче, сохранив «ключ» для каждой пары чисел.

Первые несколько пар будут храниться примерно так.

0, 0, 0, 0, 0, X, Y, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0,

 508, 356,         // 0 превращаем все нули в 508, 360
 508, 360,         // 0 при необходимости корректируем значения
 504, 364,         // 0
 508, 356,         // 0
 508, 360,         // 0

 508, 25052,       // Х

 3540, 1664,       // Й

 504, 1232,        // 1 сделать все (1) 508, 1230

 496, 364,         // 0
 504, 360,         // 0
 508, 360,         // 0

 508, 1232,        // 1

 492, 368,         // 0
 508, 356,         // 0
 512, 356,         // 0
 508, 360,         // 0

 508, 1232,        // 1

 492, 364,         // 0

 512, 1228,        // 1
 496, 1240,        // 1

 492, 368,         // 0

 508, 1228,
 496, 1240,
 492, 1240,
 492, 1240,
 492, 1240,

Проверьте это https://test.sui.li/oszi/

,