BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
bumbum
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб янв 28, 2006 01:01:04

Re: BASCOM AVR в вопросах и ответах

Сообщение bumbum »

Все биты. Было "12345678" - сделать "87654321"
sasha_1973
Родился
Сообщения: 9
Зарегистрирован: Ср дек 12, 2012 23:51:21

Re: BASCOM AVR в вопросах и ответах

Сообщение sasha_1973 »

bumbum писал(а):Все биты. Было "12345678" - сделать "87654321"



Syntax

ROTATE var , LEFT/RIGHT[ , shifts]


Var - Byte, Integer/Word or Long variable.

Shifts - The number of shifts to perform.




Rotate переменная_byte , Left , 7

Rotate переменная_byte , Right , 7
Последний раз редактировалось sasha_1973 Вт сен 15, 2015 18:21:28, всего редактировалось 1 раз.
Аватара пользователя
bumbum
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб янв 28, 2006 01:01:04

Re: BASCOM AVR в вопросах и ответах

Сообщение bumbum »

Эта команда, делает кольцевой сдвиг. "Зеркало" не получится.
sasha_1973
Родился
Сообщения: 9
Зарегистрирован: Ср дек 12, 2012 23:51:21

Re: BASCOM AVR в вопросах и ответах

Сообщение sasha_1973 »

bumbum писал(а):Эта команда, делает кольцевой сдвиг.



Всё правильно, кольцевое вращение бит в переменной
sasha_1973
Родился
Сообщения: 9
Зарегистрирован: Ср дек 12, 2012 23:51:21

Re: BASCOM AVR в вопросах и ответах

Сообщение sasha_1973 »

bumbum писал(а):Эта команда, делает кольцевой сдвиг.



Всё правильно, кольцевое вращение бит в переменной
Аватара пользователя
bumbum
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб янв 28, 2006 01:01:04

Re: BASCOM AVR в вопросах и ответах

Сообщение bumbum »

sasha_1973 писал(а):
bumbum писал(а):Эта команда, делает кольцевой сдвиг.



Всё правильно, кольцевое вращение бит в переменной

было "12345678" - станет "81234567" или "23456781"
Аватара пользователя
kip96
Держит паяльник хвостом
Сообщения: 965
Зарегистрирован: Ср авг 26, 2009 08:24:50
Откуда: 1300км от Пупа

Re: BASCOM AVR в вопросах и ответах

Сообщение kip96 »

bumbum писал(а):Все биты. Было "12345678" - сделать "87654321"

Смотрите в Хелпе swap
или тупо
a=b
a.0=b.7
a.1=b.6
и т.д.
Все делают ошибки, только мудрецы - новые, а дураки - старые.
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Re: BASCOM AVR в вопросах и ответах

Сообщение Moto_v3x »

bumbum посмотрите Shiftout может подойдет
Аватара пользователя
bumbum
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб янв 28, 2006 01:01:04

Re: BASCOM AVR в вопросах и ответах

Сообщение bumbum »

Moto_v3x писал(а):bumbum посмотрите Shiftout может подойдет

Не подойдет. Как я понимаю - это тоже сдвиг (вывод в последовательный порт)
Аватара пользователя
bumbum
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб янв 28, 2006 01:01:04

Re: BASCOM AVR в вопросах и ответах

Сообщение bumbum »

kip96 писал(а):
bumbum писал(а):Все биты. Было "12345678" - сделать "87654321"

Смотрите в Хелпе swap
или тупо
a=b
a.0=b.7
a.1=b.6
и т.д.

Swap меняет местами полубайты.
А вот вариант "тупо" сработал :)) :)) :))
Меня, пока, вполне устраивает . Спасибо!!! :))
koteika
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение koteika »

edm2007 писал(а):Жду ответ от Вас, уже на баскоме. :tea:



а как мне вот это:
"uint8_t bright[8] = {40, 70, 100, 150, 180, 200, 220, 250}; // значения яркости 8-ми каналов"

в баскоме записать? это массив делать нужно? а не очень въехал :(
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Re: BASCOM AVR в вопросах и ответах

Сообщение vem566 »

koteika писал(а):это массив делать нужно?

Только массив данных. С константами.
Типа

bright:
DATA 40, 70, 100, 150, 180, 200, 220, 250

Обращение к нему соответственно
A = Lookup(0, bright)
B = Lookup(1, bright)

и т. д.
Индексация элементов массива начинается с нуля.
koteika
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение koteika »

vem566 писал(а):Только массив данных. С константами.


а в какой части кода мне его объявлять? в начале после переменных?
и "Lookup" что это?
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Re: BASCOM AVR в вопросах и ответах

Сообщение vem566 »

В любом, после основного цикла Do-Loop.
Lookup - это функция извлечения данных из массивов. Подробно расписана в хелпе.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Это не константы. Это значения яркости всех каналов. А значит - переменные. Можете создать отдельно каждую переменную, а можете скопом:

Код: Выделить всё

Dim Bright(8) as Byte


Только инициализировать при создании их нельзя. И в отличии от Си индекс их начинается с 1.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Re: BASCOM AVR в вопросах и ответах

Сообщение vem566 »

edm2007 писал(а):Это не константы. Это значения яркости всех каналов. А значит - переменные.

Ни разу это не значит, что переменные.
Переменные, это данные, которые могут иметь разное значения в разное время работы программы.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Этот код писал я. И я говорю - это переменные. :)) Они могут иметь разные значения, так как это программный ШИМ для регулировки яркости светодиодов.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Re: BASCOM AVR в вопросах и ответах

Сообщение vem566 »

Тогда нужно корректно задавать вопрос.
Аватара пользователя
SIM31
Это не хвост, это антенна
Сообщения: 1363
Зарегистрирован: Чт апр 04, 2013 22:22:57
Откуда: Белгород, РФ

Re: BASCOM AVR в вопросах и ответах

Сообщение SIM31 »

Не хватает памяти, использую всего 4 переменных по 4 байта, и 3 типа Word по 2 байта, всего около 20 байт, новую добавить не могу - нет памяти.

Для attiny13, у которой 64 байта памяти, как правильно прописать заголовок? По умолчанию Bascom прописывает что-то странное, в примерах из интернета нашел всё по 16 байт
$hwstack = 16
$swstack = 16
$framesize = 16

прерывания не используются (стеки не нужны?), всё в одном цикле, одна подпрограмма с вызовом по GoSub (можно убрать если память занимает).

Программа поместилась, немного оптимизировал и ушел от 4х байтовых переменных, но на будущее интересно, может там можно точнее указать по распределению памяти что-то.
Аватара пользователя
Tankor
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт май 03, 2011 10:13:12
Откуда: Россия, Татарстан

Re: BASCOM AVR в вопросах и ответах

Сообщение Tankor »

SIM31 писал(а):Программа поместилась, немного оптимизировал и ушел от 4х байтовых переменных, но на будущее интересно, может там можно точнее указать по распределению памяти что-то.

Сама программа где? В хедпе васика есть, но надо с английским дружить или онлайн переводчик использовать.
Ответить

Вернуться в «AVR»