Jump to content

    

Палыч

Свой
  • Content Count

    2412
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Палыч

  • Rank
    Гуру
  • Birthday 11/23/1960

Информация

  • Город
    г. Новочеркасск

Recent Profile Visitors

5494 profile views
  1. Непонятки с оператором if()...

    По порядку: 1. Тип переменой ind - uint8_t или, что то же самое - unsigned char; тип константы 0xFE - int (см. п.6.4.4.1 абзац 5 стандарта). 2. При вычислении (ind|0xFE), поскольку типы разные, то приводятся к "большему" - к int. Результат - типа int. 3. Далее (uint8_t)(ind|0xFE) - тип явно приводится к uint8_t (unsigned char). 4. И наконец ~((uint8_t)(ind|0xFE)). Перед операцией ~ над операндом с типом unsigned char производится неявное преобразование - "integer promotions". Правило преобразования я цитировал выше.
  2. Непонятки с оператором if()...

    Цитата из стандарта ISO/IEC 9899:2011 (E) пункт 6.3.1.1 абзац 2 Все-таки будет приведено к int.
  3. Непонятки с оператором if()...

    При вычислении ~((uint8_t)(ind|0xFE)) перед выполнением оператора ~ значение (uint8_t)(ind|0xFE) снова будет преобразовано к типу int.
  4. Непонятки с оператором if()...

    Например: if((~ind) & 0x01)
  5. Непонятки с оператором if()...

    Растолковываю: ind - uint8_t (unsigned char ) 0xFE - int Перед вычислением (ind | 0xFE) приводится значение переменной ind к типу int; результат - типа int, где старшие 8 бит имеют нулевое значение. Результат вычисления ~(ind | 0xFE) тоже будет иметь тип int, но восемь старших бит будут иметь значение 1. Оператор под if(~(ind | 0xFE)) будет всегда выполнятся, т.к. значение выражения - не ноль. При temp = ~(ind | 0xFE); старшие 8 бит потеряются.
  6. Непонятки с оператором if()...

    Огласите, пожалуйста, типы переменных temp и ind. Подозреваю, что - char. Почитайте про приведение типов в языке С.
  7. Мышкой по имени вверху страницы -> Настройки профиля -> Подпись Там же и выключатель просмотра подписи
  8. В UDP частично пакет считать нельзя. Но, можно считать пакет не удаляя его из входной очереди: у функции recv (и ей подобных) есть параметр flags. MSG_PEEK - это то значение flags, что Вам нужно.
  9. У меня нет ST-Link, но, если обратиться к документации Keil, то можно прочитать, что анализатор работает с: ULINKPro ULINK2 J-Link/J-Trace Всё! Перечень исчерпан...
  10. Аналогично. Однако, если вместо входа на форум перейти с главной страницы на любой подфорум или тему, а затем с неё вернуться на главную страницу, то форум "вспоминает", что ты уже когда-то входил сюда. PS. Отставить! Чтобы такого не было, нужно указывать протокол с шифрованием.
  11. T/C1 (ATmega16) по-разному считает

    Вероятно, потому, что пределитель - обычный двоичный счётчик, состояние которого не определено в момент записи в регистр TCCR1B. Для сброса счетчика пределителя в ноль используется регистр SFIOR.
  12. Проблема Ehernet в LPC1766

    Первоначально картинка выглядела так: [attachment=107561:Fig18.png] Затем картинку зачем-то поменяли, причем замена была только в UM серии 17хх. В документации на другие серии МК картинка не изменилась.
  13. Проблема Ehernet в LPC1766

    Порядок передачи октетов МАС-адреса по сети обратен их традиционной шестнадцатиричной записи. Ваш адрес: 11.22.33.44.55.66 В нём 11.22.33 - идентификатор производителя; 44.55.66 - уникальный номер, присвоенный производителем В выбранном Вами идентификаторе производителя закралась ошибка: первый октет в идентификаторе производителя (11) - не может иметь такое значение: определяют только старшие шесть бит (заменим его на 10). В сеть вначале передаётся идентификатор производителя, затем - номер. Итого: SA0= 0x6655; SA1=0x4433; SA2=0x2210; Кстати, я с Вами использую какие-то разные manual'ы: у меня ни страницы не совпадают, ни рисунки, и регистра SA3(о котором Вы всё время говорите) - нет.
  14. Проблема Ehernet в LPC1766

    Нулевой (хорошо бы, и первый) бит первого октета МАС-адреса имеет нулевое значение?