Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » изменить нужный bit в переменной байт


изменить нужный bit в переменной байт

Сообщений 1 страница 11 из 11

1

Здравствуйте!  Прошу помощи.   К примеру есть переменная байт.
Dim A as byte

можно ли изменить в ней к примеру первый бит?
A(1) = 1
где-то на форуме видел нечто подобное, но найти не могу, а в таком формате компилятор ругается

0

2

A.1=1

+1

3

Огромное спасибо.

0

4

А можно и так:
A=A OR &B0000_0001
Или
A=A AND &B1111_1110

:tomato:

0

5

Блииииин! А я, лошара, в двоичный вот так переводил:

Код:
    for i = 8 to 1 step -1
      if i = 8 then k = 128
      if i = 7 then k = 64
      if i = 6 then k = 32
      if i = 5 then k = 16
      if i = 4 then k = 8
      if i = 3 then k = 4
      if i = 2 then k = 2
      if i = 1 then k = 1
      if B >= k then
        DataBits(i) = 0
        B = B - k
      else
        DataBits(i) = 1
      end if
    next

0

6

А за сколько тактов выполняется A.1=1?
Это конечно странно. но мой код перевода из BIN в BYTE суммированием почему то работает быстрее

0

7

Sheleh написал(а):

А за сколько тактов выполняется A.1=1? Это конечно странно. но мой код перевода из BIN в BYTE суммированием почему то работает быстрее

Мсье обладает способностью измерять микросекунды "на глаз" ? ;)

0

8

Мсье вооружен логером.
Пытаюсь софтварно в режиме slave по I2C реализовать обмен. Поэтому нужна скорость и каждый такт на счету.

0

9

Sheleh написал(а):

Пытаюсь софтварно в режиме slave по I2C реализовать обмен.

Попытка таки сотворить I2C-slave ?
Ждем, очень ждем !  Без иронии !

Sheleh написал(а):

Поэтому нужна скорость и каждый такт на счету.

Чем отличается строка A.1 = 1 от одной из вышеуказанных k = хх, которых целых восемь ? ;)
А еще циклы, сравнения...  Однозначно не ускоряют процесс... ;)

0

10

Эх, как много изменилось за пару лет, читаю и вспоминаю себя в начале пути, но теперь у меня в коде всё чаще:

Было: L=L+1
Стало: Incr L

Было L=L-1
Стало: Decr L

Было: A.1=1
Стало: Set A.1

Было: A.1=0
Стало: Reset A.1

Вроде смысл один и тот-же, но в голове почему-то "L=значение", а значение "1" уже лишняя память, а вдруг SET просто включает и т.п.  :blush:

0

11

Ну хошь в отладчике посмотри код, по идеи, если компилятор правильно сделан, то разницы не должно быть.

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » изменить нужный bit в переменной байт