EORgrinya писал(а):(исключающее ИЛИ) под ATmega8
http://www.gaw.ru/html.cgi/txt/doc/micr ... sm/eor.htm
EORgrinya писал(а):(исключающее ИЛИ) под ATmega8
Эээ, какое смещение? 9 бит = 512 градусов, 9-й бит в старшем байте, остальные 8 — в младшем.vik1977ck писал(а):Старший байт,младший байт и смещение?
Да... вот смотрите- измерил я с помощью АЦП температуру - например 2,507 вольт -там термопара через ОУ- и вот теперь мне нужно сделать из этого числа температуру- перевести в градусы - я знаю что при 2,507 -это 366 градусов по Цельсию- сравнить с константой которая внесена в ОЗУ- типа ограничение при котором выключиться симистор и вывести показания на 4-рядный семи сегментный дисплей- вот тут и попал в засаду- умственную..Gudd-Head писал(а):Эээ, какое смещение? 9 бит = 512 градусов, 9-й бит в старшем байте, остальные 8 — в младшем.vik1977ck писал(а):Старший байт,младший байт и смещение?
Да на ассемблере пишу- как-то с самого начала у меня с СИ и с PIC не срослось...pyzhman писал(а):Нужно складывать это значение в переменную, размерность которой превышает байтовую величину. Например integer. На у если на ассемблере (на что очень смахивает запрос), то ручками/лапками.
Код: Выделить всё
var1_0, var1_1, var1_2 - одна трёхбайтная переменная (в регистрах),
var2_0, var2_1, var2_2 - вторая.
Сравнение будет выглядеть очень просто:
cp var1_0,var2_0
cpc var1_1,var2_1
cpc var1_2,var2_2
ну а дальше в зависимости от флага C переход на метку...Код: Выделить всё
ldi Temp, low(0x4FF)
out SPL, Temp
ldi Temp, high(0x4FF)
out SPH, Temp