Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2019, 17:57

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: HX711. Вопросы
СообщениеДобавлено: 11 янв 2018, 10:51 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3479
Откуда: Новосибирск
Ковыряю HX711. Работал кто с этой микросхемой? По даташиту:
The output 24 bits of data is in 2’s complement format. When input differential signal goes out of the 24 bit range, the output data will be saturated at 800000h (MIN) or 7FFFFFh (MAX), until the input signal comes back to the input range.
В примере работы есть такая строка:
Код:
sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void){
unsigned long Count;
unsigned char i;
ADDO=1;
ADSK=0;
Count=0;
while(ADDO);
for (i=0;i<24;i++){
ADSK=1;
Count=Count<<1;
ADSK=0;
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000; // Эта строка.
ADSK=0;
return(Count);
}


Хотел бы понять логику выходных данных. От и до в положительном диапазоне и в отрицательном. И зачем эта строка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HX711. Вопросы
СообщениеДобавлено: 14 янв 2018, 00:15 
Здравствуйте!

Зарегистрирован: 14 янв 2018, 00:07
Сообщения: 1
demiurg1978 писал(а):
Ковыряю HX711. Работал кто с этой микросхемой? По даташиту:
The output 24 bits of data is in 2’s complement format. When input differential signal goes out of the 24 bit range, the output data will be saturated at 800000h (MIN) or 7FFFFFh (MAX), until the input signal comes back to the input range.
В примере работы есть такая строка:
Код:
ADSK=1;
Count=Count^0x800000; // Эта строка.
ADSK=0; 


Хотел бы понять логику выходных данных. От и до в положительном диапазоне и в отрицательном. И зачем эта строка.


Строка как раз для преобразования 24-bit 2’s complement format в нормальное 32-bit unsigned long
Изначально данные приходят "со знаком". Но если просто тупо добавить недостающий старший байт, то будет чушь с разрывом значений.
Второй смысл этой строки - необходимая пауза между ADSK=1; и ADSK=0; , чтобы не писать delay(1);


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: mieron


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB