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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » FAQ по Bascom AVR и МК » Вопросы и ответы


Вопросы и ответы

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

1

Эта тема для обсуждения других тем данного раздела, что их не замусоривать... ;)

Предлагаю форумчанам добавлять сюда сведения (наработки), которые могут спровоцировать "чайниковские" вопросы (коих уже немало) в других разделах сайта...

Это поможет в дальнейшем уже уверенно сказать - "А ты FAQ читал?" ;)

Отредактировано Nord (2019-05-09 21:58:36)

0

2

А разве бит в памяти не один байт занимает?

+1

3

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

А разве бит в памяти не один байт занимает?

Физически да. Исправлено.

0

4

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

А разве бит в памяти не один байт занимает?

8 битовых переменных занимают байт.

+1

5

Пётр написал(а):

8 битовых переменных занимают байт.

radan правильно уточнил.
Даже 1-бит переменная будет использовать в памяти 1 байт.

0

6

По мотивам "переменные типа BIT".
Проведен такой эксперимент:

Код:
Dim A As Bit : A = 1
Dim B As Bit : B = 0
Dim C As Bit : C = 1
Dim D As Bit : D = 0
Dim E As Bit : E = 1
Dim F As Bit : F = 0
Dim G As Bit : G = 1
Dim H As Bit : H = 0

Dim Z As Byte
z.0 = 1
z.1 = 0
z.2 = 1
z.3 = 0
z.4 = 1
z.5 = 0
z.6 = 1
z.7 = 0

Результат:
http://sh.uploads.ru/t/s2b7i.jpg
Красным выделены переменные типа BIT, синим - BYTE (см.выше).

Переменные типа BIT накапливаются в памяти от старшего бита к младшему.
Переменная типа BYTE хранится обычным образом.

Смущает только Справка Bascom:
Memory usage
Each 8 bits used occupy one byte. When you dimension 1 bit, you will also use 1 byte.
Перевод Google:
Каждые 8 ​​используемых бит занимают один байт. Когда вы измеряете 1 бит, вы также будете использовать 1 байт.
Возможно, что именно такое "неявно-точное" утверждение разработчика и вводит в заблуждение.
Если оф. справка дает такие расплывчатые описания, то, видимо, открывать "скрытые" возможности Bascom будем еще долго... ;)

Правильнее было бы, видимо считать так:
"Переменные типа BIT формируются в "блоки" по 8 шт.
Если задействованы не все 8 бит, то байт в памяти считается занятым для использования другими переменными"

PS. В изначально "спорной" теме исправлено.

Отредактировано Nord (2019-07-21 20:23:14)

0

7

Пётр написал(а):

Подпрограммы не поддерживают аргументы и локальные переменные.

Это не смертельно. ;)
Вопрос использования - дело каждого.
Уже не раз тут ломали копья на эту тему... ;)

Меня на эти "исследования" натолкнул возврат к 1-Wire-Slave Эмуляция 1-Wire устройства.
Там в некоторых местах пришлось даже от Gosub-Return отказаться... ;)

0

8

Александр Д. написал(а):

а вот почему Toggle так оттранслировалась - вопрос...

Тут как раз и ожидалась разница...
Все-таки напрашивается предварительное сравнение...
Хотя, в ассме может и силами NOT делаться...

Отредактировано Nord (2019-08-21 17:51:48)

0


Вы здесь » Программирование ATMEL в BASCOM. » FAQ по Bascom AVR и МК » Вопросы и ответы