Страница 228 из 400

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб июн 07, 2014 18:39:50
Flash.#13
pyzhman писал(а):
When ADCL is read, the ADC Data Register is not updated until ADCH is read. Consequently,
if the result is left adjusted and no more than 8-bit precision is required, it is
sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH.
ААА мануал, пасибки! Заработало!!! Это такой пипец, пол дня мудохался, и так и сяк а там отакое... :shock:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб июн 07, 2014 18:54:18
pyzhman
Пожалуйста.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб июн 14, 2014 22:23:12
FreshMan
вопрос относительно rjump
при обьеме флеша в 4 килослова и нахождении рабочей точки в конце памяти существует ли вероятность что я не допрыгну в начало
меня об этом должен предупредить компилятор ?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб июн 14, 2014 22:39:43
Kavka
4 кило слова это +-2 килослова, которые заложены в rjmp. Прямая видимость обрабатывается как обычно, а то куда не достаёт напрямую делается "перепрыгиванием через границу". Т.е. или через конец памяти на начало, или через начало на конец. Подобно переполнению целочисленной переменной (как для байта, 255+1 даёт 0). Таким образом адресуется вся память. В любом случае компилятор ругнётся если он что-то не сможет переварить.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Сб июн 14, 2014 22:53:42
FreshMan
Kavka писал(а):Т.е. или через конец памяти на начало, или через начало на конец.
нифигасе :))
весьма познавательно....., спасибо ! :))

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 17:25:48
FreshMan
вопрос относительно Н флага
при вычитании или сложении оный флаг равен единице тогда когда результат больше $0F ?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 17:35:08
Kavka
Нет. Флаг H равен единице если был перенос из 3-го бита в 4-й для сложения или был заём из 4-го в 3-й для вычитания.
Нумерация битов от нуля.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 17:47:21
FreshMan
а как на асме реализовать такую конструкцию

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

if(a>b)
{
   c=1;
}
else
{
  c=2;
} 

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 21:38:25
ILYAUL
cp a,b
brsh туда
с=2
туда:
с=1

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 21:59:14
WiseLord
А в случае else после с=2 не выполнится ли часом ещё и c=1?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 22:01:03
nirq
4 кило слова это +-2 килослова, которые заложены в rjmp
Транслейт: (r)jmp прыгает не на указанный адрес, а на плюс-минус N адресов от самой инструкции (r)jmp.
Качаем doc0856.pdf, ищем там слово "Opcode".
Смекаем: а разницу между чем и чем вычисляет кто и в какой момент?
или через конец памяти на начало, или через начало на конец
а). берём микросхему такую же, но с более другими килобайтами
б). в той же самой микросхеме дописываем новый код, меняем местами старый.

Кулхацкер не нужен. Почётен, зачётен, может даже выиграть приз на каких-нибудь соревнованиях по этому за это - но не нужен.

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

ldi c,2
cp b,a
brsh pc + 1
ldi c,1
Обсуждаем со всех сторон!

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вс июн 15, 2014 23:49:13
ILYAUL
WiseLord писал(а):А в случае else после с=2 не выполнится ли часом ещё и c=1?
Т.е в уме после с=2 добавить rjmp сюда, просто лень? Ему нужна была просто структра IF в исполнении asm / Так в asm не существует и c=x

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 01:11:19
baghear
Добрый день, на 87 странице есть такой кусочек кода для вывода дробной части ds18b20
Код:
; таблица дробной части (12-битное преобразование)
table: .db '0','0','0',0'
.db '0','6','2',5'
.db '1','2','5','0'
.......
.db '9','3','7',5' ; всего 16 строк по 4 символа
...............
...............
; дробная часть в temp - диапазон 0b0000...0b1111
ldi ZL,low(table*2)
ldi ZH,high(table*2)
rol temp
rol temp ; temp=temp*4
add ZL,temp
clr temp
adc ZH,temp
; четыре команды LPM с инкрементом Z вытянут дробную часть из таблицы
..................
Находят начальный адрес таблицы, затем прибавляют к нему temp*4.
Для чего temp умножают именно на 4?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 06:25:52
akl
Шаг таблицы равен 4 байтам, поэтому temp умножается на 4, суммируется с началом таблицы, получается точка входа для извлечения числового значения по текущему коду.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 11:32:52
baghear
Так как шаг 0,625, то одно из значений 1,250 и 1,875 будет недоступно?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 11:40:20
akl
The resolution of the temperature sensor is user-configurable to 9, 10, 11, or 12 bits, corresponding to increments of 0.5°C, 0.25°C, 0.125°C, and 0.0625°C, respectively. The default resolution at power-up is 12-bit.
Где Вы увидели такой шаг?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 11:45:12
ILYAUL
Он путает шаги по таблице с точностью изм. темрературы

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 16:33:55
baghear
Да точность 0,0625.
Разве таблица строится не с шагом точности?

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Вт июн 17, 2014 20:51:13
ILYAUL
нет - она сама по себе. Тут

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Добавлено: Ср июн 18, 2014 00:18:08
baghear
Разобрался :))
Спасибо akl