Я знаю, что OCIE0A=0001
в двоичном формате, так будет (1<<OCIE0A)
просто быть 0010? Я вижу, что это используется довольно часто, в чем причина установки регистра на (1<<OCIE0A)
, а не только на его прямо на 0010?Что такое (1 << OCIE0A) в C?
ответ
Судя по результатам поиска Google, оно отображается как имя для бита, который контролирует «Таймер/счетчик выходных совпадений сравнения совпадения прерываний» * в «Режиме маски прерывания таймера/счетчика прерываний» * 8 бит AVR микроконтроллеров "* Его использование выглядит следующим образом *:
TIMSK0 |= _BV(OCIE0A); // enable compare A interrupts
TIMSK0 &= ~_BV(OCIE0A); // disable compare A interrupts
TIMSK0
Где это * Таймер прерывания регистр маски *. OCIE0A
- это идентификатор, который (кому-то знакомому с кодом AVR *) более понятен *, чем TIMSK0 |= 2
*.
Они используют битовые идентификаторы вместо масок, так как любой компилятор Halfwit может оптимизировать их для одной и той же вещи для бит-> маски, но переход из маски-> бит сложнее *. Поэтому, оставляя это как битдист, это легко и быстро для всех обычаев *.
На несвязанной ноте цифры являются значениями, хранящимися как двоичные файлы на компьютере. «Десятичный» и «Hex» - это представления этих значений. Таким образом, OCIE0A не является «шестнадцатеричным». Это символ, который обозначает битое смещение флага, со значением 1.
* допущений везде, я ничего не знаю
+1 для исследовательских усилий. –
Как встроенный программист, я полностью согласен. Я ненавижу читать старый код и нахожу 'config_reg = 0x051C'. «О, черт возьми, мне нужно снова найти справочное руководство». Гораздо лучше увидеть 'config_reg = EN_FIFO | EN_INT | WORD_SZ_8;» – AShelly
Вы совершенно правы с вашими предположениями. Также смотрите здесь больше на эту тему: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_use_bv –
- 1. Что такое 1 << 0?
- 2. Что такое оператор << << в C++?
- 3. Что такое <? = В C++?
- 4. Что такое << оператор?
- 5. Что такое оператор << <<?
- 6. Что такое оператор << <> в C++?
- 7. Что такое синтаксис typedef enum как «1 << 0»?
- 8. Что такое args.length <1 в java?
- 9. Что такое эквивалент для << из C++ в C#?
- 10. Что такое оператор << << в js?
- 11. Что такое значение «<? =» В C++
- 12. Что такое << в этом контексте?
- 13. Что такое «< >» синтаксис в C#
- 14. Что делает c = c & (1 << бит)?
- 15. Что такое "<<<<<<<< head" в моих файлах?
- 16. Что означает «<< 1 в Javascript?
- 17. Что такое <_wmi_namespace: <COMObject <unknown>>?
- 18. Что такое <!-->?
- 19. Что такое "<,'>"?
- 20. Asp.Net - что такое <% $?
- 21. Что такое класс << само рубина
- 22. Что такое i = 1 << я имею в виду в C?
- 23. Что такое "<<< SQL" в PHP?
- 24. Почему (1 <1 <1) возвращает true в C++?
- 25. Что такое POSIX оболочки эквивалент Баш <<<
- 26. Что такое <% = в нефрите?
- 27. Perl: Что такое C <our>?
- 28. Что такое C# equiv "object <object"?
- 29. C++: Что делает этот знак «<<»?
- 30. Как 0x01010101 эквивалентен 1 << 24 + 1 << 16 + 1 << 8 + 1
Что такое 'OCIE0A'? Имя переменной? – Mysticial
@ Мистическое шествие. – mugetsu
В гексагоне нет букв 'I'. Кроме того, он даже не будет близок к '0001'. – Mysticial