СИ - математические выверты
26.11.2012, 11:50
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: СИ - математические выверты
Сообщение от Boba_spb
|
Не так все просто - 1111 0022 даст 111122, а в обратную сторону 11 1122.
тогда уж тупо
uint32_t twoint_as_long (uint16_t v1, uint16_t v2)
{
uint32_t High = v1, Low = v2;
return (High*10000 + Low);
}
Или
uint32_t tab={1,10,100,1000,10000,100000};
uint32_t twoint_as_long (uint16_t v1, uint16_t v2,int n)
{
uint32_t High = v1, Low = v2;
return (High*tab[n] + Low);
}
|
а если _v1 = 0456, а _v2 = 0034, итог будет 4560034? вот на этом у меня "глюк" и происходил, не мог понять.. почему фильтр так корежит.
|
|
|
|
26.11.2012, 12:03
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: СИ - математические выверты
А во float или double перевести координаты что мешает?
На СИ ж прогу пишите.
|
|
|
|
26.11.2012, 12:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
|
Re: СИ - математические выверты
Boba_spb, нежелание использовать float / double в avr 
я перевел, получилось, работает, но проц на издыхании )))
а с целыми - нормально..
|
|
|
|
26.11.2012, 12:49
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: СИ - математические выверты
Ну тогда фильтруйте только дробную часть - один градус это километров 50 будет. И корректируйте при переходе через градус.
|
|
|
|
Сказали "Спасибо" Boba_spb
|
|
|
26.11.2012, 16:42
|
|
|
Гражданин KAZUS.RUN
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: СИ - математические выверты
Сообщение от Boba_spb
|
|
Ну тогда фильтруйте только дробную часть - один градус это километров 50 будет. И корректируйте при переходе через градус.
|
Лучше будет перевести координату в знаковое целое (1 - это тысячная минуты) и фильтровать-усреднять это целое.
|
|
|
|
26.11.2012, 17:02
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: СИ - математические выверты
Тогда фильтруйте то доли минут, а то усреднение стремное будет !!
В одном градусе всего 60 минут - учитывать это будете ?
|
|
|
|
Сказали "Спасибо" Boba_spb
|
|
|
26.11.2012, 19:05
|
|
|
Вид на жительство
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 425
Сказал спасибо: 147
Сказали Спасибо 70 раз(а) в 55 сообщении(ях)
|
Re: СИ - математические выверты
а не судьба выяснить, какая кодировка символов в этой машине, и убрать лишние биты? Кодом, кодом, а не C. Ничего, кроме успеха, Вам не грозит
а если эти части поступают из внешнего неподконтрольного C, то лучше всего, имхо,
1) сконкатенировать строки (если они из С - ноль в конце уже есть)
2) применить ATOI
Если планируется выход за разрядную сетку, то задача намного сложнее, успех под вопросом
|
|
|
|
26.11.2012, 20:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: СИ - математические выверты
Дык это с GPS приемника по протоколу NMEA принимаются координаты, а затем их чуток фильтруют. Правда тысячную минуты вряд ли GPS так просто даст - эт 1.8 метра на экваторе цена младшего бита. Обычно RMC координаты GGMM.MM
|
|
|
|
26.11.2012, 20:19
|
|
|
Гражданин KAZUS.RUN
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: СИ - математические выверты
Сообщение от Boba_spb
|
|
Обычно RMC координаты GGMM.MM
|
У вас такие приёмник выдаёт? обычно современные приёмники 4-5 цифр на доли минут выдают.
|
|
|
|
26.11.2012, 20:40
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: СИ - математические выверты
А какой у Вас приемник и какой протокол?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:44.
|
|