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

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

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

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

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

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


 
Опции темы

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

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

Красиво писать - это искусство)
Научите покрасивше под задачи? avrstudio

1) сложить uint16_t и uint16_t как строки, например 1111 2222 = 11112222
пока выглядит так:
Код:
uint32_t twoint_as_long(uint16_t _v1, uint16_t _v2)
{
	static char _buff[12];
	sprintf(_buff, "%u%u\0", _v1, _v2);
	uint32_t _r = atol(_buff);
	return _r;
}
Но хочется математически с заточкой под мк

2) разбить полученное выше число аналогичным образом, имея _n - точку (число) разбивки (например, по аналогии с дробным). Например, 11112222 разбить на 1111 и 2222, ориентируясь на _n=4

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

может так ?
uint32_t twoint_as_long(uint16_t _v1, uint16_t _v2)
{
return ((((uint32_t)_v1)‹‹16 ) + (uint32_t)_v2;
}
Boba_spb вне форума  
Непрочитано 25.11.2012, 20:22  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: си - математические выверты..

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

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

Код:
uint32_t twoint_as_long(uint16_t _v1, uint16_t _v2)
{
	
	uint32_t _r = ((((uint32_t)_v1)‹‹16 ) + (uint32_t)_v2);
	static char _buff[12];
	sprintf(_buff, "%u\0", _r);
	RS485_send_str(_buff);RS485_send_str("\r\n");
	return _r;

}
Код:
$GPRMC,162546.400,A,4503.6112,N,03857.0758,E,0.18,325.94,251112,,,A*69
6112
whoim вне форума  
Непрочитано 25.11.2012, 20:54  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: си - математические выверты..

sprintf(_buff, "%lu\0", _r); попробуйте
Boba_spb вне форума  
Непрочитано 25.11.2012, 21:22  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: си - математические выверты..

Зачем лишний ноль в конце строки?

Я бы использовал что-то полегче монстров типа *printf.
AJScorp вне форума  
Непрочитано 25.11.2012, 21:32  
whoim
Почётный гражданин KAZUS.RUN
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,618
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: си - математические выверты..

Boba_spb, так и сделал. Ноль нужен чтобы при дальнейшей обработке всякая гадость видела конец строки.

Но задача перетекла в другую плоскость.. Фильтр Калмана в применении к географическим координатам целиком дает такой размах, что страшно..

Думаю вернуться к применению фильтра только на дробной части UTM и отслеживать изменение целой части и переинициализировать фильтр..
whoim вне форума  
Непрочитано 25.11.2012, 21:37  
AJScorp
Почётный гражданин KAZUS.RUN
 
Аватар для AJScorp
 
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,550
Сказал спасибо: 384
Сказали Спасибо 735 раз(а) в 416 сообщении(ях)
AJScorp на пути к лучшему
По умолчанию Re: си - математические выверты..

Сообщение от whoim Посмотреть сообщение
Boba_spb, так и сделал. Ноль нужен чтобы при дальнейшей обработке всякая гадость видела конец строки.
Когда в функцию передается строка (в двойных кавычках), ноль в конце присутствует по умолчанию.
AJScorp вне форума  
Сказали "Спасибо" AJScorp
whoim (25.11.2012)
Непрочитано 25.11.2012, 21:51  
Boba_spb
Почётный гражданин KAZUS.RUN
 
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: си - математические выверты..

Вот "0" эт не мое детище.
Стар и ленив я - скопировал строчку и вставил символ

и из строки sprintf(_buff, "%u\0", _r);
сделал строку sprintf(_buff, "%lu\0", _r);
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
whoim (25.11.2012)
 
Опции темы

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

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

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


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


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