Перейти к содержанию

korsaj

Members
  • Постов

    3 116
  • Зарегистрирован

  • Посещение

  • Победитель дней

    7

Весь контент korsaj

  1. korsaj

    Юмор

    Доказано на комарах
  2. Наберётесь терпения, все будет. Правда не понятно что...
  3. korsaj

    Юмор

    Правую часть картинки нужно отделить от левой - каждому свое место. И походу деду капельницу из вина делают, потому как кровь переливают только при потери крови, а лужу под дедом не видно.
  4. Это крайние методы, когда нет ничего под рукой, а промыть рану нужно. А так всё норм - йод, зелёнка и покой.
  5. После включения, при отключённом кабеле, монитор показывает надпись об отсутствии сигнала
  6. Ну если в секундах - то просто делим на 60 и получаем минуты и остаток секунды. Если нужно ещё и часы, то минуты делим на 60
  7. С учётом описания, явно стабилизатор тока.
  8. Со временем возможно так, не видел в каком формате оно приходит. Ну примерно. Мы переводили шестнадцатиразрядное число из строки, потому умножали на 16. Теперь нужно сделать обратное, но число то нам нужно отобразить (преобразовать в строку) десятиразрядное. А раз действие обратное, значит вначале делим на 10, получаем результат и остаток от числа. Остаток - это тот самый искомый разряд, а результат содержит остальные разряды числа. Например есть у нас десятичное число 754, чтобы перевести в строку первым делом делим его на 10: 754 / 10 = 75 и 4 в остатке. К 4 прибавляем 48 и получаем код символа 4 в таблице аски (52). Теперь делим 75 на 10: Получаем 7 и 5 в остатке. 5+48 = 53 (5 в аски) И последнее делим 7. В остатке 7, прибавляем 48 получаем 55. Есть ещё один алгоритм, вместо деления, использовать вычитание. Для этого из 754 вычитаем 100 пока оно больше 100 и подсчитываем количество вычитание (насчитаем 7) и останется 54, теперь вычитаем 10 и считаем. Насчитаем 5 и остаток 4.
  9. Давайте рассматривать ваш случай и хотите того или нет, нужно все проверять. Первым делом локализовать источник, а затем решать что делать. Еще вопрос: если монитор включить без компа, тогда тоже видны помехи?
  10. @Dr. West , хорош. Видите чем-то расстроен. Поддержать нужно. Ну так вы это делаете во благо тех кто вас подначивал или на зло тем кто вас поддерживал? Задумайтесь на этими словами. Жизнь сложная штука, вам по ней еще не один шаг идти...
  11. Ну вы еще на шаг ближе к гуру В коде (весь не просматривал) функция используется верно. Сможете без подсказки? Если нет, мысли свои пишите..
  12. А зачем вам коммутировать светодиод, раз вы им хотите управлять с МК. Подключите МК к АКБ пусть и измеряет и отображает. Чуть не забыл: Драсти.
  13. А если помеха вне диапазона приема сдр приемника? А что от ups уже запитывали?
  14. Я к тому что заказчик пошел искать другую подрядную организацию и возможно она решит ему проблему таким образом.
  15. Да. В моем примере объявлено long, потому как число у вас в строке 32-х битное.
  16. Я бы взял что под рукой есть и запустил,раз надо срочно. На 1507 свет клином не сошёлся.
  17. Чтобы удостовериться что проблемы от сети - запитайте комп от UPS, если помех не будет - значит розетка, если будут, значит фон. А тут уже нужно измерять чтобы понять в пределах санитарной нормы или нет.
  18. Если несколько типов переменных, каждый тип занимает определенное количество байт, соответственно тем самым ограничивается диапазон значений переменной. Например ваш любимый char занимает 1 байт. И принимает значение от -127 до 127, если это unsigned char - занимает все тот же байт но значения от 0 до 255. int занимает 2 байта, long 4 байта. Есть ещё типы для переменных с плавающей запятой float, double. Так что когда объявляете, продумайте какое максимальное значение может принять ваша переменная и исходя из минимальной надобности выбирайте тип. Конечно можно сразу объявит с максимальной размерностью, но чем больше байт занимает переменная, тем больше нужно ресурсов МК для работы с ней.
  19. long dec = CharToInt(rx_buf[3]); dec = dec*16 + CharToInt(rx_buf[4]); dec = dec*16 + CharToInt(rx_buf[5]); Есть строка например 1С2 (видим число строке). теперь когда отправим в функцию CharToInt символ '1' этой строки она нам вернет число 1, мы его поместили в переменную dec. Получаем dec = 1. теперь посылаем в функцию CharToInt символ 'С', вернет число 12. Но как мы помним что число 1 у нас занимает старший разряд по отношению к 12. Потому вначале dec умножаем на 16, получаем dec = 16 (и в шестнадцатеричном формате будет выглядеть так 0х10). теперь прибавляем к нему результат преобразования символа 'С' и получаем 16+12=28 (и в шестнадцатеричном формате будет выглядеть так 0х1С). Повторяем все тоже самое для следующего символа '2', все также умножаем dec на 16, получаем 448 (0х1С0) и теперь прибавляем нашу полученную 2. В итоге имеем в dec = 450 (0х1С2). То есть у нас была строка "1С2" а после всех манипуляций мы получили число 450 (0х1С2) с которым можно дальше оперировать.
×
×
  • Создать...