anonymous@RULINUX.NET~# Last login: 2024-04-25 08:30:21
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Вот такая строчка кода

\code{PORTB = (1

iwolf(*) (2011-06-14 15:21:00)
Отредактировано iwolf по причине "не указана"
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

[Ответить на это сообщение]
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Это какая-то неправильная строчка кода!

anonymous(*)(2011-06-14 15:27:34)

avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Уже настрочил донос администрации ))), сейчас в картинку переправлю чего хотел сказать.

iwolf(*)(2011-06-14 15:33:07)
Отредактировано iwolf по причине "не указана"
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Патч для ядра linux, полностью решающий проблему 12309:

\code{--- a/include/linux/sched

SystemV(*)(2011-06-14 15:33:37)

Emacs-w3m/1.4.414 w3m/0.5.3
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Вот короче, есть сточка кода

Эта строчка устанавливает логическую единицу на вывод PB0 порта B. Все понятно, но при чем тут операция сдвига какую она роль играет?

iwolf(*)(2011-06-14 15:42:11)
Отредактировано iwolf по причине "не указана"
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

PB0 = 0, 1<<0 = 00000001b => бит в нулевом разряде. Для какого-нибудь PB6 будет очевиднее. И вообще, не парься, записывай константы в хексе как Ъ. Только потом фиг поймёшь от чего это у тебя не тот бит, да ещё и не в том порту дёргается.

anonymous(*)(2011-06-14 15:54:46)

avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

//Расставил пробелы, чтобы движок не глотал shift

 http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=37871&start=0

Sometimes, a programmer wants to specify the bit NUMBER that they want to change and not the bit MASK. The bit number always starts at 0 and increases by 1 for each bit. An 8 bit byte has bit numbers 0-7 inclusive. The way to build a bit mask with only a bit number is to LEFT SHIFT a bit by the bit number. To build a bit mask that has bit number 2 set:

Code: (0x01 < < 2)

To build a bit mask that has bit number 7 set:

Code: (0x01 < < 7)

To build a bit mask that has bit number 0 set:

Code: (0x01 < < 0)

Which ends up shifting the constant 0 bytes to the left, leaving it at 0x01.

SystemV(*)(2011-06-14 15:55:13)

Emacs-w3m/1.4.414 w3m/0.5.3
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

Просто на GCC AVR решил перейти, в CVAVR таких заморочек нет, но CVAVR копирастическая штучка чтобы ее использовать в профессиональной деятельности.

iwolf(*)(2011-06-14 15:57:56)
Отредактировано iwolf по причине "не указана"
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

> Эта строчка устанавливает логическую единицу на вывод PB0 порта B
Не, эта строчка ещё и сбрасывает значение на остальных выводах.

anonymous(*)(2011-06-14 16:18:08)

avatar
Скрыть

Re: [СПГС][микроконтроллеры][avr] Сдвиг в Си для МК.

>Для какого-нибудь PB6 будет очевиднее.
Кстати да. :) Кажется начинает доходить. Когда на нулевом выводе неочевидно нифига.

iwolf(*)(2011-06-14 16:34:40)
Отредактировано iwolf по причине "не указана"
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!