Помогите понять как отобразить в атмеге отрицательное число

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение Мастер Ломастер »

ploop писал(а):Не врубился, что это даст?
вот что ассемблер с мозгом делает!!! :)))
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение BVS »

ploop писал(а):Не врубился, что это даст?
или вычитать из нуля оба байта с переносом
так что не хрена не просто
Реклама
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение pyzhman »

2ploop: с ассемблером длинно получается, на С просто меняем знак. Короче во всяком случае писать лапками, что там после компиляции не проверял. :)
Про себя: злопамятность и ехидность Мастер Ломастер'а настораживает.
Docendo discimus
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение Мастер Ломастер »

pyzhman писал(а):Про себя: злопамятность Мастер Ломастер'а настораживает.
я не злопамятный :) я просто злой. а что память у меня хорошая - так я не виноват.
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение ploop »

BVS писал(а):
ploop писал(а):Не врубился, что это даст?
или вычитать из нуля оба байта с переносом
так что не хрена не просто
Еще раз говорю, что не понял. Вот формат данных DS18B20:

Изображение

В старшем байте у нас всего три бита.
СТОП!
inc XH + neg XH = com XH.
Тогда вообще не вижу смысла в вашем коде...

Кстати, я дал кусок рабочего кода из проекта, который сейчас отлаживаю. Стоит у меня на столе и показывает верную температуру с двух датчиков. Уж если была бы ошибка в старших битах, я наверное заметил бы :)
Так что всё просто.
Реклама
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение BVS »

Ваш код будет работать если Температура не равна минус 16 и 32 градуса
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение ploop »

Посчитал "в уме"... Действительно... дома получше проверю. Так и не дошло, почему так получается.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение ploop »

Ну вот, как на улице перевалило за -16, вспомнил про этот глюк. Понял, почему так происходит, поправил.
Надо просто сделать дополнение до двух всего слова, а не младшего байта:

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

  bst XH,7                      ; в T признак знака (0 - положительная темп.)
  brtc ct2                      ; Если отрицательная - меняем знак   
    clr r16                     ; дополнением до двух: X=0-X  
    clr r17
    sub r16,XL
    sbc r17,XH
    mov XL,r16
    mov XH,r17
  ct2:
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение BVS »

А Я вам про это и говорил! :))
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение ploop »

Ну так я ваши слова и вспомнил.
Хотел -32 дождаться, но подумал, что не дождусь :)))
BVS
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн май 23, 2011 18:27:41

Re: Помогите понять как отобразить в атмеге отрицательное чи

Сообщение BVS »

У меня вот вчера было -31, но увидеть этот "глюк" с датчика почти не возможно
но это не глюк,а если переменная 16 бит то и операция с учетом переполнения

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

  neg XL ;флаг переноса ставится если XL не равен 0
  brcc pc+2; если равен то пропускаем
  inc XH      ; ставим перенос в старший байт или com XH
  neg XH   ; иначе
я вот делал регулятор и надо было показывать установленную температуру и тоже не думая делал как вы
и вычислил
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»