Jump to content

kostya_unix

Members
  • Content Count

    42
  • Joined

  • Last visited

Community Reputation

1 Обычный

About kostya_unix

  • Rank
    Новенький
  • Birthday 02/28/1970

Информация

  • Пол
    Мужчина
  • Интересы
    КИП, микроконтроллеры
  • Город
    Уссурийск

Электроника

  • Стаж в электронике
    10-20 лет
  • Сфера радиоэлектроники
    микроконтроллеры
  • Оборудование
    Паяльник, ноутбук, микроконтроллер.

Recent Profile Visitors

896 profile views
  1. Владимир спасибо за разъяснение правил. Поверьте мне, я не со зла. Впредь буду аккуратней. Про измерение длительности импульсов @Eddy_Em .... Все, как раз, и началось с того, что по тексту программы все длительности в аккурат укладывались в тайминг. Но вот только ответа (импульс присутствия) так и не удавалось получить. И это все приключилось тогда, когда я только начал изучать и этот датчик и знакомится с интерфейсом 1-Wire.Просидел над этой проблемой неделю. Перечитал инструкцию несколько раз, пересчитал тайминги согласно графику не один раз. А проблема была в программе AVRDUDE. Вернее в использовании ее мной. Насчет жуткости кода.... Вы еще не видели, что я потом наваял. Вот это действительно жуть. Но я его не покажу. Боюсь гнева профессионалов. Ну да ладно. Научимся и мы. Не боги горшки обжигают. Всем здоровья и благополучия.
  2. @Starichok Вы знаете, разобрался. Спасибо ребятам, подсказали. В этой ветке задавал этот вопрос.
  3. @IMXO @Vascom спасибо Вам большое. Хотелось бы сказать, что недоглядел или еще что то вроде того. Но нет. Знаний не хватает - это так. На чужих ошибках не учусь, только на своих. @IMXO буду читать, читать, читать. И пытаться понять. Спасибо!!!
  4. Я предполагал, что команда (cmd) будет именно 0x80 Еще раз спасибо за ответ. Я, почему то, подумал, что будет проверятся не один бит, а несколько. Еще раз спасибо. Понимаете что меня смутило. Это то что если эту операцию (0x80 & 0x80) я через UART вывел в консоль компьютера и там было именно 128. Ни 1 ни 0. Да. Именно так. 128 отличное от 0.
  5. Да. Вы правы. Теперь понятно.
  6. А Вы, случайно, не имели дело с этим (ENC28J60) модулем ?
  7. А если проверяются все 8 бит?
  8. Но тогда и диапазон между 0x80 и 0x7F уж очень большой. Тогда проверяется старший бит?
  9. Если com = 0x80, тогда возвращается 0x80. И если com = 0x8F тогда возвращается тоже 0x80. Зачем тогда сравнение в if(). Возвращаемое значение никак не изменяется. Я бы понял, если бы проверялся один бит. НО тут их гораздо больше участвует.
  10. Для логических значений - правильно. Но как быть с битовой операцией & ? Прошу прощения за свой вопрос. Но тут как раз и не принимает (т.е не возвращает 1 или 0) действие с операндами в условии if(). В условии, насколько я понял, происходит проверка команды на соответствие значения 0x80. Если com = 0x80, тогда возвращается 0x80. И если com = 0x8F тогда возвращается тоже 0x80. Зачем тогда сравнение в if(). Если я не прав, тогда пожалуйста укажите где. Еще раз повторю: -- bool_значение возвращают операторы сравнения и логические операторы
  11. Во время изучения кода для модуля ENC28J60 столкнулся с частью кода, который не совсем понятен. Может быть кто растолкует? Использую Atmel Studio 7 // Отправляем команду enc28j60_tx(cmd | (adr & 0x1f)); // При необходимости, пропускаем "ложный" байт if(adr & 0x80) enc28j60_rx(); // Читаем данные data = enc28j60_rx(); Собственно вопрос: - не понятно возвращаемое значение условия if(adr & 0x80). Понимаю, что & 0x80 это маска и она накладывается на значение переменной adr, но , в таком случае, полученное значение должно с чем-то сравниваться. Насколько я понимаю bool_значение возвращают операторы сравнения и логические операторы( в этом случае было бы понятно выражение (adr & 0x80). Но тут возвращается целочисленное значение и никак не 1 или 0. Пожалуйста подскажите что тут не так. Заранее всем благодарен.
  12. Очень рад Вас видеть. Да. Я этой функцией превратил в кирпич два контроллера. Но отрицательный результат тоже результат. Научился и понял. Очень хотелось бы Вас по имени назвать, но не знаю его (жаль). Мое имя Константин. Уважаемый @Starichok. Может Вы подскажете по возвращаемым значениям в проверке условия if() ? Начал изучат модуль ENC26J60 и в коде программы нашел вот такой кусочек кода : // При необходимости, пропускаем "ложный" байт if(adr & 0x80) enc28j60_rx(); Понимаю, что 0x80 это маска, но вот с какое возвращаемое значение не пойму. По идее должно быть числовое, тогда с каким числом сравнивается? Опять же маска, в этом случае, не возвратит bool_значение....
  13. И снова здравствуйте. С момента публикации моего последнего комментария прошло 1,5 года. Многое за это время изменилось и в моей жизни (переболел то-ли короной, то-ли гормональный сбой в организме был (еле еле "вычухался")) и в жизни нашей страны. Хотелось бы уточнить по поводу инициализации DS18B20. Понимаю, что тема избитая, но все же. Может кому ни будь да полезной будет. Вся эта история началась с невозможности програмно определить присутствие датчика в схеме. По всей видимости (пришлось столкнуться с этим еще раз), проблема была в программе AVRDUDE_PROG. Заметил, что когда установлена галочка в FUSE автоматического программирования, тогда и вылазила проблема с присутствием датчика. А если программировать по отдельности (с начало fuse, а затем programm), то все проходит хорошо. Всем крепкого здоровья и благополучия.
  14. @elki спасибо. Евстифеева скачал (5-е издание). Наверное в книгах есть ответы на многие вопросы. Но ,Вы знаете, живое общение ( а особенно со знающими и , главное, помогающим начинающим (@Starichok ,@ARV особая благодарность) ) дорогого стоит. Опять же и Вам @elki спасибо большое.
×
×
  • Create New...