#1 2016-05-18 22:52:53

DangerD
Учасник
Зареєстрований: 2016-05-18
Повідомлень: 6

Перенос кода Arduino LiquidCrystal_1602_RUS на проект Atmel Studio

День добрый, никогда раньше не сталкивался с программированием под микроконтроллеры.
В общем надо в готовый проект https://github.com/stawel/cheali-charger впилить библиотеку с поддержкой русских символов:
https://github.com/ssilver2007/LiquidCrystal_1602_RUS

Скетчи готовой либы для ардуины и для атмел студии немного отличаются:
https://github.com/ssilver2007/LiquidCr … 02_RUS.cpp
https://github.com/stawel/cheali-charge … rystal.cpp

В итоге я вконец с этим всем запутался...

в либе русской есть функция:
void LiquidCrystal_1602_RUS::print(const wchar_t *_str){
в cheali-charger:
uint8_t LiquidCrystal::print(const char str[])
уже типы не совпадают

В итоге застрял на этом:
D:/Cheali/cheali-charger-master/src/core/drivers/LiquidCrystal.cpp: In member function 'uint8_t LiquidCrystal::print(const char*)':
D:/Cheali/cheali-charger-master/src/core/drivers/LiquidCrystal.cpp:359:12: warning: case label value exceeds maximum value for type
       case 1041: //╨С


uint8_t LiquidCrystal::print(const char str[])
{
  uint8_t rus_[8];
  int current_char  = 0;
  int size = 0;
 
  //Определяем длину строки (количество символов)
  /*while(str[size] != NULL)
  {
    size++;
  }*/
  size = strlen(str);
  
  while(current_char < size)
  {
    switch(str[current_char])
    {
      //Русский алфавит, требующий новых символов
      //Единовременно может быть заменено только 8 символов
      case 1041: //Б
        memcpy_PF(rus_, (uint32_t)rus_B, 8);
        CharSetToLCD((uint8_t *)rus_, &index_rus_B);
      break;

Валится на case 1041
Как букву в этот код перевести?

Остання редакція DangerD (2016-05-18 22:54:13)

Неактивний

#2 2016-05-27 21:54:28

liftman
Гість

Re: Перенос кода Arduino LiquidCrystal_1602_RUS на проект Atmel Studio

arduino это уже C++ со своими функциями и т.д и т.п., atmel studio новый это чистый CИ, для которого нужно самому писать все функции

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму