Я только изучаю язык Си для микроконтроллеров AVR. Учу его в интернете, сам, у меня нет ни учителей, ни советчиков. Поэтому, у меня есть вопросы по нижеследующему, мне некому их больше задавать я просто хотел бы, чтобы опытные люди посмотрели на примеры моего понимания этого языка и сказали, что я делаю правильно, а что неправильно.
Что значит запись:
Взять число "1" (
0b00000001), сдвинуть его влево на заданное кол-во бит ("RS"), инвертировать результат операции ("~"), затем провести над результатом и регистром "PORTC" операцию "побитового И" ("&"), а затем поместить результат в регистр "PORTC" ("=").
1) Т.е., если "RS=0", сдвиг числа "
0b00000001" влево на "
0" битов в результате даст это же число, т.е. "
0b00000001".
2) В результате инверсии, получится число "
0b11111110".
3) Побитовое И числа
0b11111110 и регистра PORTC (данный регистр полостью настроен на выход, состояние в данный момент "
0b10000001") даст число "
0b10000000" - которое и будет записано в регистр PORTC. Т.е., таким образом, я сбросил PC0.
Я все правильно интерпретировал?
- - - - - - - - - -
Что значит еще одна запись:
Взять число "1" (
0b00000001), сдвинуть его влево на заданное кол-во бит ("EN"), затем провести над результатом и регистром "PORTC" операцию "побитового ИЛИ" ("|"), а затем поместить результат в регистр "PORTC" ("=").
1) Т.е., если "EN=1", сдвиг числа "
0b00000001" влево на "
1" битов в результате даст число "
0b00000010".
2) Побитовое ИЛИ числа
0b00000010 и регистра PORTC (данный регистр полостью настроен на выход, состояние в данный момент "
0b10000001") даст число "
0b10000011" - которое и будет записано в регистр PORTC. Т.е., таким образом я установил PC1.
Тут я тоже все правильно интерпретировал?