Телескопы покупают здесь


A A A A Автор Тема: Управление телескопом с помощью GO-TO  (Прочитано 34286 раз)

0 Пользователей и 1 Гость просматривают эту тему.

halx

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #240 : 07 Дек 2006 [04:11:15] »
Народ, а что означает троечка возле второго тангенса?
и как произносится закорючка которая после этого тангенса стоит?

Закорючка - греческая буква дзета.

Цитата: Andreichk
D*=-1;
Это лучше поменять на D=-D; гораздо быстрее будет считаться и нет проблемы с типом D (int или float).
И в остальных местах так лучше переделать.

А ещё я б посоветовал вот это ( x = fabs(Dd); )
переделать в такое ( x=(Dd<0.)?-Dd:Dd; ) - тоже быстрее в разы работает;

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #241 : 08 Дек 2006 [21:01:45] »
Цитата
x=(Dd<0.)?-Dd:Dd; )
а по-русски это как звучит?

halx

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #242 : 10 Дек 2006 [06:29:56] »
по-русски: Если Дд меньше плавающего нуля, то положить в х минус Дд, иначе положить туда Дд. Фишка в оптимизации кода компилером С. Второе условие (ложное) являясь присваиванием не генерит кода (ассемблерного) вобще (ну, если быть точным - для случая x=(x<0.)?-x:x; ). Вариант же с fabs(x)- вызовет столько творческих действий компилера и линкера, что мало не покажется (Икс в стек положить, если стека нет - его создать, перелоцировать блок памяти для локальных вызовов в другое место памяти... и так далее, и тем более при возврате значения...).
« Последнее редактирование: 10 Дек 2006 [06:37:58] от halx »

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #243 : 10 Дек 2006 [06:46:30] »
x=(Dd<0.)?-Dd:Dd;
такие конструкции в моём Ccontrol-II не поддерживаются, поэтому приходится использовать math.abs(x).
Но к счастью в тех местах кода, где скорость не имеет значения.
Вот тут напр.

function to_dez(float wert)returns float
{float a,b,c,d,e,deg;
 a=wert/100000;//xx.xxxxx 05.36214
 b=math.abs(a);//xx.00000 05.00000
if wert<0 {
        c=(a+b)*100;//xx.xxx -36.214 //НЕГАТИВ.
        d=math.abs(c);//00.xxx 36    //НЕГАТИВ.
        e=c+d;//00.xxx 0.214         //НЕГАТИВ.
        deg=-b-d/60-0.01*e;          //НЕГАТИВ.
       }
  else {
        c=(a-b)*100;//xx.xxx 36.214  //ПОЗИТИВ.
        d=math.abs(c);//00.xxx 36    //ПОЗИТИВ.
        e=c-d;//00.xxx 0.214         //ПОЗИТИВ.
        deg=b+d/60+0.01*e;           //ПОЗИТИВ.
       }
 return deg;//десятичная величина
}//----------------OK
//####################################################

вызывается один раз и забывается до техпор, пока опять кнопку не нажму.

halx

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #244 : 10 Дек 2006 [07:19:29] »
Логично.
Но взять на заметку стоит.
if(Dd<0.) x=-Dd; else x=Dd; - то же самое что (а?б:ц). Оно только выглядит длиннее, но ресурсов и времени проца кушает меньше чем вызов функции.

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #245 : 10 Дек 2006 [07:31:25] »
Спасибо,учту :)

Суворов Владимир

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #246 : 15 Дек 2006 [22:14:38] »
Если кому охота покопаться в исходнике- файл лежит тут. Компилятор размером 1.23 Мб зашлю на мыло.А так можно и блокнотом просмотреть.
З.Ы. это ещё не окончательный вариант- возможны дополнения
обновил сегодня 15.12.2006

Хорошо сделанно. Я тоже хочу сааам! Но пока еще зеленый. ;D

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #247 : 15 Дек 2006 [22:20:20] »
Цитата
Но пока еще зеленый.
зато у тебя свой электрофокусер на ПИКе

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #248 : 05 Янв 2007 [14:33:13] »
Если кому охота покопаться в исходнике- файл лежит тут. Компилятор размером 1.23 Мб зашлю на мыло.А так можно и блокнотом просмотреть.
З.Ы. это ещё не окончательный вариант- возможны дополнения
обновил сегодня 5.01.2007

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #249 : 05 Янв 2007 [14:41:54] »
Цитата
А ещё я б посоветовал вот это ( x = fabs(Dd); )
переделать в такое ( x=(Dd<0.)?-Dd:Dd; ) - тоже быстрее в разы работает;

Опреации сравнения с плавающим нулём это не красиво и неправильно. Это в любой книжке по програмированию написано. :)

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #250 : 05 Янв 2007 [15:02:43] »
x=(Dd<0.)?-Dd:Dd;
такие конструкции в моём Ccontrol-II не поддерживаются - поэтому и не применяю

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #251 : 05 Янв 2007 [15:06:45] »
?:  это стандартная ANSI сишная операция. Должна поддерживаться компиляторами в том числе и твоим.

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #252 : 05 Янв 2007 [15:08:31] »
Но применять их всё равно некрасиво с плавающим нулём, потому что плавающиё ноль это не точно ноль, о примерно ноль. :)

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #253 : 05 Янв 2007 [15:09:16] »
нет, Денис.Я всю доку перелопатил- и не нашёл. Для понта даже в прогу вписал-сразу ошыпка выскочила.

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #254 : 05 Янв 2007 [15:11:52] »
Кстати с наступившим Новым годом всех  :)

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #255 : 05 Янв 2007 [15:13:17] »
И Вам примерно того же!  :)

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #256 : 05 Янв 2007 [15:14:05] »
Цитата
нет, Денис.Я всю доку перелопатил- и не нашёл. Для понта даже в прогу вписал-сразу ошыпка выскочила.
Странно!

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #257 : 05 Янв 2007 [15:19:28] »
вот картинка-

Andreichk

  • Гость
Re: Управление телескопом с помощью GO-TO
« Ответ #258 : 05 Янв 2007 [15:31:57] »
покопался в доках к моему контроллеру и обнаружил следующее -
float Wertbereich- +- 1.7*10^-308......+- 1.7*10^308, Speicherplatzbedarf- 8 Bytes. Тоже самое в доках по Си, только применительно к переменным типа Double. Получается , что мой float - это тоже самое , что ихний Double. Или я не догоняю чего-то?

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 762
  • Благодарностей: 74
  • Keep your eyes open!
    • Skype - n.dennis
    • Сообщения от Денис Никитин
Re: Управление телескопом с помощью GO-TO
« Ответ #259 : 05 Янв 2007 [15:32:31] »
Понял.

Да и кстати я был не прав. :) Проверять if(x < 0.) можно. Вот так нельзя if(x == 0.), но это совсем другой случай.