Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Молба за тест на PIC
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=16307
Страница 1 от 2

Автор:  DanielDimov [ Нед Яну 13, 2019 7:19 pm ]
Заглавие:  Молба за тест на PIC

Здравейте и Честита Нова Година на всички !!!

Понеже нямам PIC-ове при мен - имам молба да се провери колко бързо вървят на реален микроконтролер няколко изчислителни алгоритъма. Ще е най-интересно и полезно да се тества на ядро което е без FPU.

Интересува ме само относителната скорост - колко по-бавни са трите останали алгоритъма спрямо най-простия и най-бърз (FAI sphere). Това би се видяло най-лесно като се вдига и сваля един изходен пин и с осцилоскопа се измери коефицента на запълване.

Прилагам кода, към който само трябва да се добавят вдигането и свалянето на пина.

Прикачени файлове:
main.cpp [5.32 KiB]
357 пъти

Автор:  TheWizard [ Нед Яну 13, 2019 7:49 pm ]
Заглавие:  Re: Молба за тест на PIC

на къф PIC?
е па пусни го в МПЛАБ симулатора, може да ви мериш времена за изпълнение

Автор:  DanielDimov [ Нед Яну 13, 2019 8:01 pm ]
Заглавие:  Re: Молба за тест на PIC

Нямам нищо свързано с Микрочип, а и освен това не съм сигурен че в симулатор резултата ще е точно като на истинския хардуер!

Автор:  TheWizard [ Нед Яну 13, 2019 8:08 pm ]
Заглавие:  Re: Молба за тест на PIC

симулатора мери циклите на инструкциите баш като на реален и като му цъкниш и честотата имаш и времената
за какъв пик те интересува

Автор:  DanielDimov [ Нед Яну 13, 2019 8:13 pm ]
Заглавие:  Re: Молба за тест на PIC

За тези новите които са с MIPS ядро. До колкото съм чел има два типа ядра - със и без FPU. По-интересно е какво ще излезе на ядро без FPU!

Автор:  TheWizard [ Нед Яну 13, 2019 8:24 pm ]
Заглавие:  Re: Молба за тест на PIC

test.c:161:2: error: unknown type name 'pair_coord'

Автор:  DanielDimov [ Нед Яну 13, 2019 8:28 pm ]
Заглавие:  Re: Молба за тест на PIC

Ами аз всъщност не знам има ли GCC тези ядра ?! Ако няма - ще трябва да го преработя на стандартно C

Автор:  TheWizard [ Нед Яну 13, 2019 8:36 pm ]
Заглавие:  Re: Молба за тест на PIC

PIC32MZ2048EFM100
200 MHz

math default :) незнам каква е
4 мили
6 мили
4 мили
6 мили
и те така

Прикачени файлове:
TEST_SPEED.zip [8.77 KiB]
323 пъти
200MHz.jpg
200MHz.jpg [ 509.8 KiB | Прегледано 6486 пъти ]

Автор:  DanielDimov [ Нед Яну 13, 2019 8:49 pm ]
Заглавие:  Re: Молба за тест на PIC

Ей това вече би трябвало да се компилира...

Прикачени файлове:
main.c [5.35 KiB]
332 пъти

Автор:  DanielDimov [ Нед Яну 13, 2019 8:53 pm ]
Заглавие:  Re: Молба за тест на PIC

ще има ли памет за повече от 1000 двойки координати - за 10 хиляди примерно ?

Автор:  TheWizard [ Нед Яну 13, 2019 9:05 pm ]
Заглавие:  Re: Молба за тест на PIC

жената ме изгони от компа
този PIC32MZ2048EFM100 има 512k ram и FPU

Автор:  DanielDimov [ Нед Яну 13, 2019 9:05 pm ]
Заглавие:  Re: Молба за тест на PIC

MPLAB е на базата на NetBeans 8O

Автор:  TheWizard [ Нед Яну 13, 2019 11:41 pm ]
Заглавие:  Re: Молба за тест на PIC

е па да ... джавешки истории
NetBeans + GCC

Автор:  DanielDimov [ Пон Яну 14, 2019 12:24 pm ]
Заглавие:  Re: Молба за тест на PIC

Можеш ли да сложиш още два блока с викане на другите два метода ( wgs84_meeus и wgs84_vincenty ) - да видим и те за колко време се изпълняват!

Автор:  TheWizard [ Пон Яну 14, 2019 1:03 pm ]
Заглавие:  Re: Молба за тест на PIC

от тази математика нищо не разбирам

тва е теста - дай нова фунция

Код:
int test_main(void)
{
   const long TESTCOUNT = 1000;
   const double RANDMAX = (double)RAND_MAX;
   const double DEG2RAD = M_PI / 180.0;

   pair_coord * mem = (pair_coord*)malloc(TESTCOUNT * sizeof(pair_coord));

   srand(2);

   for (long i = 0; i < TESTCOUNT; i++) {
      double baseLat = (double)rand() * 60.0 / RANDMAX;
      pair_coord* x = &mem[i];
      x->lat1 = (baseLat + (double)rand() * 3.0 / RANDMAX - 1.5) * DEG2RAD;
      x->lon1 = ((double)rand() * 3.0 / RANDMAX - 1.5) * DEG2RAD;
      x->lat2 = (baseLat + (double)rand() * 3.0 / RANDMAX - 1.5) * DEG2RAD;
      x->lon2 = ((double)rand() * 3.0 / RANDMAX - 1.5) * DEG2RAD;
   }

   while(1) {

      // set the output pin to HIGH state

      double s = 0;
      for (long i = 0; i < TESTCOUNT; i++) {
         pair_coord* x = &mem[i];
         double d = fai_sphere(x->lat1, x->lon1, x->lat2, x->lon2);
         s += d;
      }

      // set the output pin to LOW state

      s = 0;
      for (long i = 0; i < TESTCOUNT; i++) {
         pair_coord* x = &mem[i];
         double d = wgs84_andoyer(x->lat1, x->lon1, x->lat2, x->lon2);
         s += d;
      }

   }

   return 0;
}



Страница 1 от 2 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/