Ви не увійшли.
Сторінки 1
TCNT1H = 0x85EE >> 8;
TCNT1L = 0x85EE & 0xff;
Хотелось понять принцип работы подобных конструкций. Первая операция это логический сдвиг в право в регистр TCNT1H он 8 битный, но TCNT1 регистр имеет разрядность 16 бит и физически состоит из двух 8 битных регистра, TCNT1H (старшая часть 8 - 15 бит) и TCNT1L (младшая часть 0 - 7). Что получается при такой операции? Поскольку регистр 8 разрядный то в него только 0x85 или 0xEE по логике загрузится 0xEE и сдвинутся в права, что приведет к загрузке 0x85 в регистр TCNT1H.
Далее побитовое И между числом 0x85EE и 0xff старшая часть числа в расчет браться не будет, она не помещается, значит будет производиться операция между числами 0xEE и 0xff и результатом операции будит истина, то есть в регистре TCNT1L будет 0xEE. Правильны ли мои рассуждения?
Неактивний
qwone, Green
0x85EE = 0b1000010111101110 даташит открыли - битики проверили, или вы доверяете на все 100% неизвестно кем писаным дефайнам? небось HAL юзаете для "ногодрыганья"? )
не, я тоже согласен что 8 битники это жуткий напряг, но большинство ардуинщиков их юзает, и это не повод обзываться )
Неактивний
И, кстати, что то qwone молчит... Наверняка ведь тут можно прилепить и ООП, с его инкапсуляцией, наследованием и полиформизЬмом. Об абстракции вообще молчу. Я, кстати, обычно пишу не TCNT1, а типа TIMER16. Ибо не только AVR имею ввиду.))
Остання редакція Green (2017-08-03 16:03:34)
Неактивний
И, кстати, что то qwone молчит... Наверняка ведь тут можно прилепить и ООП, с его инкапсуляцией, наследованием и полиформизЬмом. Об абстракции вообще молчу. Я, кстати, обычно пишу не TCNT1, а типа TIMER16. Ибо не только AVR имею ввиду.))
Неактивний
Сразу пошли наезды, завуалированные оскорбления... А моя мысль в том, что всё хорошо к месту. Всего лишь.
А почему вы свою мысль не используете. К чему упоминать меня и все это. Это в этой теме было точно к не месту. Или вы и только вы определяете что к месту, а что к не к месту.
Неактивний
Сторінки 1