реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Сравнение чисел на AT89S8252
Muxamor
сообщение Sep 20 2005, 06:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Приветствую!
Такая вот проблема в микроконтроллер мне приходит число 15000 мне нужно его сравнить с 10000 как это реализуеться?


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
mse
сообщение Sep 20 2005, 07:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Ну если приходит 15000, то чё его сравнивать с 10000? Напиши по-русски словами, чего тебя волнует, чтобы никто не гадал. В каком виде приходит? Как часто? Только 15000 или ещё что-нить? Какие ещё пожелания?
Go to the top of the page
 
+Quote Post
Muxamor
сообщение Sep 20 2005, 08:13
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



Алгоритм такой! В бинарном виде приходит! Числа приходят от 200 до 20000 с шагом 200! приходящее число я получаю как оно сравниваец ! Двубаитное число?


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
elserge
сообщение Sep 20 2005, 08:34
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 29-04-05
Из: Брест
Пользователь №: 4 612



Ну конечно двухбайтное. Вычитаешь из одного 2-байтного числа другое 2-байтное, и по результатам можешь определить больше, меньше, равно. Изучи команды условных переходов (jc, jnc, jz и т.д.). Это же азы. Если не понимаешь таких вещей с лету, то возьми бумагу, и обрабатывай двоичные числа на бумаге вручную. Так сразу будет видно и понятно, что происходит в АЛУ (арифметико-логическом устройстве) МК, какие флаги и когда взводятся, какие команды использовать. Помогает, проверено на себе.

Анекдот по теме: Армия, прапорщик: Если вы такие болваны, что не можете запомнить, то записывайте в блокнот, как это делаю Я.
Go to the top of the page
 
+Quote Post
Muxamor
сообщение Sep 20 2005, 09:00
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 289
Регистрация: 4-05-05
Из: Novosibirsk
Пользователь №: 4 722



А точно там же флоаг ставиться!
Ну спасибо за помощь!


--------------------
Бубен - однако штука шаманская!!!

Go to the top of the page
 
+Quote Post
dimka2001
сообщение Nov 26 2005, 07:34
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 129
Регистрация: 6-11-05
Пользователь №: 10 508



такие вещи и математику лучше писать на Си, там ничего сложно нету
Go to the top of the page
 
+Quote Post
Harbinger
сообщение Nov 26 2005, 14:49
Сообщение #7


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Да и на асме тривиально, главное знать, куда енто число приходитsmile.gif


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
aforestman
сообщение Nov 28 2005, 12:00
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Ну, начнем с того, что 100.000 в два байта надо еще умудриться запихать!
В свое время нужно было сравнивать текущее и сохраненное значение таймера.

; Сравнение старшего байта
clr C
mov A, TH0
subb A, T_EAH
jz TmrLowB; Ст. байт текущего значения равен
jnc TmrWrt; Ст. байт текущего значения больше
jmp TmrClr; Ст. байт текущего значения меньше
; В случае равенства сравниваем младшие байты
TmrLowB:
clr C
mov A, TL0
subb A, T_EAL
jc TmrClr ; Мл. байт текущего значения меньше
TmrWrt:
Go to the top of the page
 
+Quote Post
aforestman
сообщение Nov 28 2005, 12:03
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 3-05-05
Пользователь №: 4 696



Начнем с того, что 100.000 надо еще умудриться втиснуть в два байта!

В свое время я делал так.

; Сравнение старшего байта
clr C
mov A, TH0
subb A, T_EAH
jz TmrLowB ; Ст. байт текущего значения равен
jnc TmrWrt ; Ст. байт текущего значения больше
jmp TmrClr ; Ст. байт текущего значения меньше
; В случае равенства сравниваем младшие байты
TmrLowB:
clr C
mov A, TL0
subb A, T_EAL
jc TmrClr ; Мл. байт текущего значения меньше
TmrWrt:
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 14:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016