anpaza ([info]anpaza) wrote,

Кодировки символьных ЖКИ

Пока боролся с несколькими жидкокристаллическими индикаторами от разных контор, разными путями попавшими в мои руки, попутно нарисовался пакет для сборки плагинов к gconv (оно же iconv) с дополнительными кодировками. Выкладываю сюда ибо больше некуда (домашняя страница? Увольте, ленив-с).

Какой смысл в добавлении этих кодировок в iconv? Смысл очень простой - теперь можно писать программы на C в любой кодировке, а при компиляции достаточно указать опции -finput-charset=<кодировка текста программы> -fexec-charset=<кодировка строк в выходных файлах>. В этом случае gcc автоматически преобразует все текстовые строки (и только их) в кодировку Вашего ЖК индикатора.

Простой пример для наглядности:

#include "hd44780.h"
#include <avr/pgmspace.h>
int main ()
{
    hd44780_init (HD44780_FNSET (0, 1, 0), HD44780_DISPCTL (1, 1, 0));
    lcd_gotoxy (0, 0);
    lcd_puts_P (PSTR ("Превед, медвед!"));
    return 0;
}

Не углубляясь в суть библиотеки hd44780 заметим, что строка на русском задана без всяких извращений, напрямую. Теперь надо правильно скомпилировать данную программу:

avr-gcc -c -o tlcd.out -mmcu=atmega168 -Os -finput-charset=cp1251 -fexec-charset=ks0066-ru tlcd.c

Вот и всё, прошиваем программу и она работает как ожидалось.

Скачать последнюю версию модулей кодировок можно всегда здесь. В архиве первым делом открываем файл README (он в кодировке UTF-8) и читаем, там много дополнительной информации, которую сюда дублировать не буду.

На текущий момент поддерживаются четыре кодировки: Hitachi HD44780 страница А02 (туда входят русские буквы), русская кодировка контроллера KS0066 (большинство ЖКИ фирмы WinStar, которые у нас продаются, используют эту кодировку) а также две кодовые страницы контроллера К1013ВГ6, которые использует в своих ЖКИ модулях фирма МЭЛТ.

Ниже буду вести журнал изменений библиотеки; новые версии буду выкладывать сюда же, добавляя в журнал заметки о изменениях.

  • Версия 0.1.9. Первая публичная тестовая версия.
Tags: линупс, программиазЪмы, электроника

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

  • 2 comments

[info]k4400

November 5 2009, 08:42:10 UTC 2 years ago

codevision

задумка супер!
Как подключить и пользоваться в Codevisoon подскажите!

[info]anpaza

November 6 2009, 09:11:12 UTC 2 years ago

Re: codevision

А я не знаю что такое codevision.

Это работает у меня под линуксом. Тут есть такая библиотека iconv, она заведует всеми кодировками в системе. И, соответственно, компилятор avr-gcc пользуется ей когда ему указываешь опции перекодирования.
Create an Account
Forgot your login or password?
Facebook Twitter More login options
English • Español • Deutsch • Русский…