Микроконтролери и електроника Форуми
Регистрирайте сеТърсенеВъпроси/ОтговориПотребителиПотребителски групиВход
Напишете отговор Страница 1 от 2
Иди на страница 1, 2  Следваща
Как да разбера колко време отнема това?
Автор Съобщение
Отговорете с цитат
Мнение Как да разбера колко време отнема това? 
GODONE = 1;
while(GODONE)
continue;

Става въпрос за мплаб и хайтеч при честота 20М. Самото преобразуване съм избрал да става за 1,6us, ама не знам проверката колко време отнема.

Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
Отговорете с цитат
Мнение  
ами .... струвами се вече че и хората които пишат на асемблер в MPLAB вече не разбират какво пишат ...
това изглежда така :
btfsc ...
goto $-1
та сам прецени колко време отнема .... добре е да погледнеш тези двете команди как се изпълняват, това го пише в PDF-а;

Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
Ползвай StopWatch на SIM дебъгера в MPLAB.
Така ще разбереш колко време ти отнема кода за конкретната честота.

Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Отговорете с цитат
Мнение  
i_dachev написа:
Ползвай StopWatch на SIM дебъгера в MPLAB.
Така ще разбереш колко време ти отнема кода за конкретната честота.


И това е начин ... ама за две команди ако не знае колк ому е кода ... според мен ако не помниш на тоя процесор коя команда за колко с еизпълнява .. при условие че то има само няколко команди които са различни ..... ама айде....

Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
За асемблер съм съгласен но за C е добре да свикнеш да го ползваш StopWatchа.

Просто да си изградиш навик, защото хич не е ясно колко инструкции ще
ти компилира компилатора за даден код.

За конкретния пример има много малко варианти на компилация и може
и да си погледне дисасемблера и да си сметне.

Иначе съм много съгласен че трябва да се поназнайва за колко ти минава
една инструкция.

Аз съм имал такива главоблъсканици мисля си това тук толкова инструкции
толкова време. Тествам тествам и се оказва не точно колкото съм си мислил.
За това казвам че трябва нещо да свикнеш да го ползваш дори и да си 95%
сигурен, че може и без него в 99% случаи ще ти спести 100% главоболия Smile

Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Отговорете с цитат
Мнение  
не четат тея младежи, ей не четат.... Smile

Вижте профила на потребителя Изпратете лично съобщение ICQ Номер
Отговорете с цитат
Мнение  
btfsc ...
goto $-1

Отнема 3 цикъла, на 20МХц са по 200 нс - 600нс
Ако условието стане вярно от 2 до 4 цикъла, зависи кога се случи

Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
stanleyhacker написа:
btfsc ...
goto $-1

Отнема 3 цикъла, на 20МХц са по 200 нс - 600нс
Ако условието стане вярно от 2 до 4 цикъла, зависи кога се случи

Правилния отговор е 3 цикъла в права (True) и 4 в обранта посока (False), зависимоста е от бита който проверяваш а не времето!
Това е защото когато имаш True се изпълнява инструкция NOP на мястото на GOTO , а NOP е инструкция от 1 цикъл !
За инструкция BTFSC , 0 = TRUE
За инструкция BTFSS , 1 = TRUE


_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
Времето е точно 36us. Или поне осцилоскопа тъй рече.

Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
Отговорете с цитат
Мнение Hm 
kirchi написа:
Времето е точно 36us. Или поне осцилоскопа тъй рече.

И как така го засече на осцилоскопа не ми стана ясно. ?
Ако искаш да си сигурен в сметките най добре тази програма на С я дебъгни в ASM, повечето компилатори поддържат опция да си погледнеш какъв е във вид на ASM кода , на това място ще погледнеш какви инструкции има и сметката на калкулатора е най вярно !
20MHz/4 = 200нс за инструкция !


_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение Re: Hm 
plameniv написа:
kirchi написа:
Времето е точно 36us. Или поне осцилоскопа тъй рече.

И как така го засече на осцилоскопа не ми стана ясно. ?
Ако искаш да си сигурен в сметките най добре тази програма на С я дебъгни в ASM, повечето компилатори поддържат опция да си погледнеш какъв е във вид на ASM кода , на това място ще погледнеш какви инструкции има и сметката на калкулатора е най вярно !
20MHz/4 = 200нс за инструкция !


Опа 16 де.
Ми тъй.

GPIO0 = 0;

GODONE = 1;
while(GODONE)
continue;

GPIO0 = 1;

Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
Отговорете с цитат
Мнение Re: Hm 
kirchi написа:
plameniv написа:
kirchi написа:
Времето е точно 36us. Или поне осцилоскопа тъй рече.

И как така го засече на осцилоскопа не ми стана ясно. ?
Ако искаш да си сигурен в сметките най добре тази програма на С я дебъгни в ASM, повечето компилатори поддържат опция да си погледнеш какъв е във вид на ASM кода , на това място ще погледнеш какви инструкции има и сметката на калкулатора е най вярно !
20MHz/4 = 200нс за инструкция !


Опа 16 де.
Ми тъй.

GPIO0 = 0;

GODONE = 1;
while(GODONE)
continue;

GPIO0 = 1;

Нещо грешно мислиш , така осцилоскопа ще ти засече еднократен импулс което ме съмнява да го постигнеш така лесно това засичане!
Най добре добави тези 2 инструкции вътре в цикъла да се получи безкраен цикъл и да клати безкрайно пина тогава ще говорим пак!


_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
Ами според мене си е напълно възможно да е за 36us. Все пак това са 3 инструкции, но цикъла не свършва преди да свърши преобразуването на АЦПто. А в datasheeta е казано как се смята, но това си е чиста теория, практиката може да се различава малко от теорията. Може честотата на генератора да не е точна, конфигурацията на АЦПто същото оказва влияние. Малко са вероятни хипотезите но... А да не би да се влиза в прекъсване?!?! Пробвай пак, ако ги забраниш. Нали АЦПто генерира прекъсване като приключи?

Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение Mda 
GTN написа:
Ами според мене си е напълно възможно да е за 36us. Все пак това са 3 инструкции, но цикъла не свършва преди да свърши преобразуването на АЦПто. А в datasheeta е казано как се смята, но това си е чиста теория, практиката може да се различава малко от теорията. Може честотата на генератора да не е точна, конфигурацията на АЦПто същото оказва влияние. Малко са вероятни хипотезите но... А да не би да се влиза в прекъсване?!?! Пробвай пак, ако ги забраниш. Нали АЦПто генерира прекъсване като приключи?

Аз си мислех че ставаше въпрос за един обикновен Loop за колко време се изълнява. Smile
Но действително АЦП-тата на контролера са бавни още повече че имат и капацитет на входа , така че е добре да се изчака вдигането на бита за готовност, но не се знае със сигурност колко ще отнеме това и е възможно всеки път да е различно, ако иска да е точно измерването за предпочитане е да се конфигурира на малко по бавна скорост иначе колкото по бързо го мъчиш да мери по грешни показания ще дава Exclamation Rolling Eyes


_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !
Вижте профила на потребителя Изпратете лично съобщение
Отговорете с цитат
Мнение  
Ами мен ако питаш на тоя въпрос не може да ти се отговори, остави колко са бавни АЦП-тата, те си имат прескалери, ние няма как да гадаем на каква честота ти работи АЦП-то за да ти кажем колко време отнема, а и времето е относително ...

Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:
Напишете отговор Страница 1 от 2
Иди на страница 1, 2  Следваща
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
You cannot attach files in this forum
You can download files in this forum