Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Дак тут надо книжку "Язык программирования Си" читать вначале. А то че-то где-то прочитал, че-то не так понял, Че-то ошибочно было написано в говностатейке, ну и наваял чего-то вообще дикого. Двухмерный массив объявляется аналогично одномерному: int array[2] [4] ,
Код:
void Foo(int array[2][4]) { array[0][0] = 5; int a = array[1][2]; }
Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
Добавлено: Вт дек 06, 2022 11:41:20
Встал на лапы
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 115
Рейтинг сообщения:0
Ну объявляется и так понятно как он объявляется. А я хочу указать на него,а не предавать его в аргумент как массиив.
Добавлено after 3 minutes 22 seconds: В параметрах должен быть указатель на массив а не сам массив. Его адрес. Чтоб потом пойти по этому адресу и забрать оттуда то что там лежит. И сохранить в регистр экранчика. А потом вытащить на экран то что в регистре CGRAM ( русские слова ).
Добавлено after 54 seconds: 8 байт. Ну или 7 с нулём.
Добавлено after 2 minutes 1 second: Массив и так объявлен вначале как static uint8_t text[6][8]={...........}; Там хранятся кириллеские символы.
Добавлено after 6 minutes 22 seconds: У меня задача простая просто выводить короткие слова такие как "ЦИКЛ","МЕНЮ", "ВЛЕВО","ВПРАВО" и т.д. С латиницей всё шло отлично. И менюшка получилась неплохая всё работает включает выключает сохраняет но вот оформление ужас! Латиница всё сливает в сартир! А оказалось что LCD не поддерживает кириллицу. Поддерживал бы вообще было бы всё отлично и я бы сюда и не писал ни разу и не раздражал бы глупыми вопросами. И книжки есть.
Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
Добавлено: Вт дек 06, 2022 12:27:06
Встал на лапы
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 115
Рейтинг сообщения:0
Ну двумерный вроде как понятнее...
Добавлено after 3 minutes 54 seconds: Вопрос к VladislavS. Извините. Я так понял с помощью той функции я смогу выводить слово до 8-ми символов? Для другого слова мне нужно будет в такую же фу-ю передать массив с другим словом? Я правильно понимаю?
Я не понимаю вопрос. В функцию передаётся адрес начала массива и два его размера. Внутри функции из индексов i, j вычисляется откуда из памяти брать байт.
Насколько помню, я на практике практически и не использовал CGRAM дисплея. По крайней мере, не нашел в своих архивах. Поэтому пришлось дописать такую функцию:
Код:
#define CGRAM_ADDR 0x40 /// команда установки адреса CGRAM
for(uint8_t line = 0; line < 8; line++) { WAIT(); HD44780_IO_Write(*buf, HD44780_DATAMODE); buf++; } }
, где HD44780_IO_Write(*buf, HD44780_DATAMODE); - это функция посылки байта в дисплей при ножке RS = 1 параметр в функции uint8_t *buf - это простой указатель на какой-то массив, без разницы какой размерности или с какого места. Просто указатель на какой-то байт, от которого затем в цикле отсчитывается 7 байт вперед.
, содержащий нарисованные символы (сейчас их два), то передача одной и второй строки этого массива в функцию выглядит вот так:
Код:
HD44780_WriteCGRAM(0x00, &chArray[0][0]); // первая строка в первую ячейку CGRAM HD44780_WriteCGRAM(0x01, &chArray[1][0]); // вторая строка во вторую ячейку CGRAM
, где показано, что в функцию HD44780_WriteCGRAM передается адрес элемента chArray[0][0] (с начала первой строчки), а затем адрес элемента chArray[1][0] (с начала второй строчки). То есть, основа в том, что значок & является командой взятия адреса, в данном случае адреса элемента массива с индексом [0][0] или [1][0], Эти базовые основы языка Си надо знать обязательно, прежде чем чето мутить дальше. Поэтому я настоятельно рекомендую прочитать книжку Ритчи "Язык программирования Си", потренироваться на простых примерах безотносительно чего либо, и лишь только потом переходить к экранчикам и прочей лабудени.
После этого, чтобы вывести содержимое этих двух ячеек, нужно сделать вот так:
Код:
HD44780_Print(0, 0, "\00\01\00\01", 4, 0);
, где "\00\01\00\01" - это ANSI-строчка, обозначающая 0x00, 0x01, 0x00, 0x01
PS. Если хочется загрузить в CGRAM сразу 8 ячеек, тогда можно либо передать просто имя массива chArray без индексов и значка &, как показывал выше, либо передать адрес &chArray[0][0] начала массива и в функции дальше просто сделать 8 раз показанный цикл for
Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
Добавлено: Вт дек 06, 2022 19:28:39
Встал на лапы
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 115
Рейтинг сообщения:0
Спасибо за помощь Vladislav! С помощью ваших примеров получилось записать в CGRAM. Я проверял. В LCDdata(....); передавал адреса ячеек от 0х00-0х5 и буквы выводились правильно. Теперь надо как-то их в строку придумать как вывести и всё. То стандартная фу-я не катит.
Заголовок сообщения: Re: Помогите с кодом на си для AVR (Atmega8)
Добавлено: Вт дек 06, 2022 19:59:02
Встал на лапы
Зарегистрирован: Вс мар 27, 2022 09:38:17 Сообщений: 115
Рейтинг сообщения:0
Моя фу-я такая. Вернее она не моя она тут была. Я её не писал кто-то писал но не суть. Я ей предавал числа а он ругается на большое кол-во аргументов...
Ругается на большое число аргументов? Нууу, печалька, чож поделать. Видимо, не судьба. (объясните кто-нить этому гражданину, что число передаваемых в функцию аргументов должно быть чотенько равно числу принимаемых функцией аргументов)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения