Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
short AC1;
short AC2;
short AC3;
unsigned short AC4;
unsigned short AC5;
unsigned short AC6;
short B1;
short B2;
short MB;
short MC;
short MD;
long UT;
long UP;
BMP180_Struct->AC1 = (buf[0]<<8) | buf[1];
BMP180_Struct->AC2 = (buf[2]<<8) | buf[3];
BMP180_Struct->AC3 = (buf[4]<<8) | buf[5];
BMP180_Struct->AC4 = (buf[6]<<8) | buf[7];
BMP180_Struct->AC5 = (buf[8]<<8) | buf[9];
BMP180_Struct->AC6 = (buf[10]<<8) | buf[11];
BMP180_Struct->B1 = (buf[12]<<8) | buf[13];
BMP180_Struct->B2 = (buf[14]<<8) | buf[15];
BMP180_Struct->MB = (buf[16]<<8) | buf[17];
BMP180_Struct->MC = (buf[18]<<8) | buf[19];
BMP180_Struct->MD = (buf[20]<<8) | buf[21];
> Гитхабом пользоваться не умею.
Это много говорит о квалификации.
У меня настроен… GIT для контроля версий. Зачем мне гитхаб?
Если вы уже используете гит — то неужели для вас написать в командной строке git push git@github.com:virviglaz/mics.git HEAD:refs/heads/{имя} сложнее чем то, что вы обычно делаете для публикации исходников?
… однако я пользуюсь гитхабом(точнее аналогом bitbucket), и что? это разве означает что что у меня квалификация выше?
зато ваш отзыв о том кто не пользуется тем инструментом которым пользуетесь вы, многое говорит о вас как о человеке, и о вашем отношении к людям.
if ((Result = BMP180_Struct->ReadReg(BMP180_Struct->I2C_Adrs, AC1_Reg, buf, sizeof(buf))) != 0) return Result;
Result = BMP180_Struct->ReadReg(BMP180_Struct->I2C_Adrs, AC1_Reg, buf, sizeof(buf));
if (Result != 0)
return Result;
if (!Error.BMP180)
xTaskCreate(BMP180_DataCollector, NULL, 70, NULL, tskIDLE_PRIORITY + 1, NULL);
void BMP180_DataCollector (void * pvArg)
{
BMP180_Init(&BMP180_Struct);
while(1)
{
/* Task delay */
vTaskDelay(LogConfig.BMP180_ReadInt * 1000);
/* Get data */
BMP180_Get_Result(&BMP180_Struct);
SensList.intBMP180.Pressure = BMP180_Struct.Pressure;
SensList.intBMP180.Temperature = BMP180_Struct.Temperature;
SensList.intBMP180.Altitude = Altitude(BMP180_Struct.Pressure);
SensList.intBMP180.mmHg = Pa_To_Hg(BMP180_Struct.Pressure);
/* Update flags */
SensList.intBMP180.isDataNotLogged = 1;
SensList.intBMP180.isDataUpdated = 1;
}
}
typedef struct
{
float Result;
float Value;
float Previous;
float K;
}KalmanFloatStructTypeDef;void KalmanFloatCalc (KalmanFloatStructTypeDef * KalmanFloatStruct)
{
KalmanFloatStruct->Result = KalmanFloatStruct->K * KalmanFloatStruct->Value;
KalmanFloatStruct->Value = 1.0 - KalmanFloatStruct->K;
KalmanFloatStruct->Previous *= KalmanFloatStruct->Value;
KalmanFloatStruct->Result += KalmanFloatStruct->Previous;
KalmanFloatStruct->Previous = KalmanFloatStruct->Result;
}void KalmanFloatCalc2 (KalmanFloatStructTypeDef * s)
{
s->Result = (1.0f - s->K) * s->Result + s->K * s->Value;
}
Что-то я ни разу не видел холиваров "тупоконечников" и "остроконечников". "big/little endian" давно уже стали просто терминами, обозначающими порядок байт.
… порядок следования старшего и младшего байт у этого датчика обратный
Красивый код:
— Оптимален (с точки зрения использования памяти и количества циклов, требуемых на его выполнение)
Математика, конечно, тут тяжелая
Датчик абсолютного давления BMP180