Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

СИ - математические выверты

Непрочитано 26.11.2012, 11:50  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию 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? вот на этом у меня "глюк" и происходил, не мог понять.. почему фильтр так корежит.
Реклама:
whoim вне форума  
Непрочитано 26.11.2012, 12:03  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: СИ - математические выверты

А во float или double перевести координаты что мешает?
На СИ ж прогу пишите.
Boba_spb вне форума  
Непрочитано 26.11.2012, 12:40  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: СИ - математические выверты

Boba_spb, нежелание использовать float / double в avr
я перевел, получилось, работает, но проц на издыхании )))
а с целыми - нормально..
whoim вне форума  
Непрочитано 26.11.2012, 12:49  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: СИ - математические выверты

Ну тогда фильтруйте только дробную часть - один градус это километров 50 будет. И корректируйте при переходе через градус.
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
whoim (27.11.2012)
Непрочитано 26.11.2012, 16:42  
_Артём_
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: СИ - математические выверты

Сообщение от Boba_spb Посмотреть сообщение
Ну тогда фильтруйте только дробную часть - один градус это километров 50 будет. И корректируйте при переходе через градус.
Лучше будет перевести координату в знаковое целое (1 - это тысячная минуты) и фильтровать-усреднять это целое.
_Артём_ вне форума  
Непрочитано 26.11.2012, 17:02  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: СИ - математические выверты

Тогда фильтруйте то доли минут, а то усреднение стремное будет !!
В одном градусе всего 60 минут - учитывать это будете ?
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
whoim (27.11.2012)
Непрочитано 26.11.2012, 19:05  
hacker7
Вид на жительство
 
Регистрация: 07.01.2007
Адрес: Ленинградская обл
Сообщений: 425
Сказал спасибо: 147
Сказали Спасибо 70 раз(а) в 55 сообщении(ях)
hacker7 на пути к лучшему
По умолчанию Re: СИ - математические выверты

а не судьба выяснить, какая кодировка символов в этой машине, и убрать лишние биты? Кодом, кодом, а не C. Ничего, кроме успеха, Вам не грозит
а если эти части поступают из внешнего неподконтрольного C, то лучше всего, имхо,
1) сконкатенировать строки (если они из С - ноль в конце уже есть)
2) применить ATOI

Если планируется выход за разрядную сетку, то задача намного сложнее, успех под вопросом
hacker7 вне форума  
Непрочитано 26.11.2012, 20:01  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: СИ - математические выверты

Дык это с GPS приемника по протоколу NMEA принимаются координаты, а затем их чуток фильтруют. Правда тысячную минуты вряд ли GPS так просто даст - эт 1.8 метра на экваторе цена младшего бита. Обычно RMC координаты GGMM.MM
Boba_spb вне форума  
Непрочитано 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  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: СИ - математические выверты

А какой у Вас приемник и какой протокол?
Boba_spb вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 09:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.