1. Си / Говнокод #8298

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    void Lcd_goto(uc8 x, uc8 y)
    {
            int str;
            if (x == 0)
            {
                    switch (y)
                    {
                    case 0:  str = 0x80; break;
                    case 1:  str = 0x81; break;
                    case 2:  str = 0x82; break;
                    case 3:  str = 0x83; break;
                    case 4:  str = 0x84; break;
                    case 5:  str = 0x85; break;
                    case 6:  str = 0x86; break;
                    case 7:  str = 0x87; break;
                    case 8:  str = 0x88; break;
                    case 9:  str = 0x89; break;
                    case 10: str = 0x8A; break;
                    case 11: str = 0x8B; break;
                    case 12: str = 0x8C; break;
                    case 13: str = 0x8D; break;
                    case 14: str = 0x8E; break;
                    case 15: str = 0x8F; break;
                    }
    
            }
            if (x==1)
            {
                    switch (y)
                    {
                    case 0:  str = 0xC0; break;
                    case 1:  str = 0xC1; break;
                    case 2:  str = 0xC2; break;
                    case 3:  str = 0xC3; break;
                    case 4:  str = 0xC4; break;
                    case 5:  str = 0xC5; break;
                    case 6:  str = 0xC6; break;
                    case 7:  str = 0xC7; break;
                    case 8:  str = 0xC8; break;
                    case 9:  str = 0xC9; break;
                    case 10: str = 0xCA; break;
                    case 11: str = 0xCB; break;
                    case 12: str = 0xCC; break;
                    case 13: str = 0xCD; break;
                    case 14: str = 0xCE; break;
                    case 15: str = 0xCF; break;
                    }
            }
    
            Lcd_write_cmd(str);
    
    }

    Запостил: odmin, 26 Октября 2011

    Комментарии (19) RSS

    • Математикой не владеет
      Ответить
    • > int str;
      уже хорошо
      Ответить
    • str = (x>0)? 0xC0 : 0x80;
      str += y;
      типа этого что-то?
      ...(ай, блин)
      Ответить
      • str = 0x80 | ((x & 0x01) << 6) | (y & 0xF);
        Ответить
        • но если это позиционирование каретки на говнодисплее, то там не всегда тривиальная арифметика, сам сталкивался.
          например, могут строки чередоваться ебанутым образом (на четырёхстрочнике 0, 2, 1, 3 - как нехуй), или адреса начала N строки быть не такими очевидными как тут.
          Ответить
          • http://i31.fastpic.ru/big/2011/1026/0e/fe93ae0b5b5c18b729839728574d020e.png
            Ответить
            • в таком случае афтар явно недоработал - в строке то 40 позиций, а не 16! и начинаются не с 0x80
              Ответить
              • 0x80 - это опкод
                Ответить
                • да, знакомо

                  а русский, небось, приходится жопно через английские аналоги выводить?:)
                  Ответить
                  • не жопноаналоги, а кодировка mazovia :-P
                    Ответить
                    • в первый раз слышу
                      тем не менее, педивикия говорит, что это нечто иное, чем что я имел в виду
                      http://en.wikipedia.org/wiki/Mazovia_encoding
                      Ответить
                      • http://govnokod.ru/5092
                        Ответить
                        • я про
                          http://pastebin.com/Fvj0PQu0
                          а мазовия - это чтобы латиницей русифицировать?
                          Ответить
                          • да. тогда официально была исошная кодовая страница, у которой псевдографика была не на месте. а хитрые ляхи использовали существующие латинские глифы для похожих кириллических.
                            Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий