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

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

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

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

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

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


 
Опции темы
Непрочитано 25.11.2012, 20:09  
whoim
Почётный гражданин KAZUS.RU
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 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.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 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.RU
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 284
Сказали Спасибо 129 раз(а) в 111 сообщении(ях)
whoim на пути к лучшему
По умолчанию Re: си - математические выверты..

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

Boba_spb, выводит только _v2 ((
whoim вне форума  
Непрочитано 25.11.2012, 20:27  
whoim
Почётный гражданин KAZUS.RU
 
Аватар для whoim
 
Регистрация: 26.11.2011
Адрес: Анапа
Сообщений: 1,620
Сказал спасибо: 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.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: си - математические выверты..

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

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

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

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

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

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

Сообщение от whoim Посмотреть сообщение
Boba_spb, так и сделал. Ноль нужен чтобы при дальнейшей обработке всякая гадость видела конец строки.
Когда в функцию передается строка (в двойных кавычках), ноль в конце присутствует по умолчанию.
AJScorp вне форума  
Сказали "Спасибо" AJScorp
whoim (25.11.2012)
Непрочитано 25.11.2012, 21:51  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 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, время: 16:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot