|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Окт 20, 2026 4:48 pm
Тема за бързи и тъпи въпроси
| Автор |
Съобщение |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30929 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Goto е 2 цикъла, както има и други команди които са два цикъла и други които са 1 или 2.
|
| Нед Юни 27, 2021 3:13 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8413 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Ми имаш 5 инструкции в повече, очевидно 
|
| Нед Юни 27, 2021 3:13 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
Въпросът е с какво се различава "PORTA=2;" от "PORTA=0" Примерно: Разбирам от последното PORTA=0; до първото PORTA=2 да имам повече инструкции, заради branch инструкциите, които са 2 цикъла. Обаче между първото PORTA=2; и първото PORTA=0; имам 1 микросекунда интервал. А от първото PORTA=0; до ВТОРОТО PORTA=2; имам 2 микросекунди ?
|
| Нед Юни 27, 2021 3:16 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8413 Местоположение: София
|
 Re: Тема за бързи и тъпи въпроси
Е тва как точно го прецени?  Дай осцилограма
|
| Нед Юни 27, 2021 3:50 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
С оцилоскоп. Сега ще прикача. EDIT: Ето, осцилограма:
|
| Нед Юни 27, 2021 4:02 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6152
|
 Re: Тема за бързи и тъпи въпроси
е па виж асемблера какво е омазал
_________________ main[-1u]={1};
|
| Нед Юни 27, 2021 4:23 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
Според datasheet минималното време за изпълнение на инструкция е 200 ns. От асемблерския код, виждам, че за да стане пина 1-ца му трябват две инструкции, т.е 2 цикъла, което трябва да е около 400 ns. За да стане 0, му трябва 1 инструкция = 1 цикъл = 200 ns. Значи на практика трябва 1-цата да трае 2 пъти повече от 0-та, а според осцилоскопа е обратното? Пробвах и с логически анализатор, пак същата диаграма вади. ПП: Пробвах с MikroC и с CX8, както и с PIC12F629 и PIC16F627 - еднакво се държи. ППП: Пробвах на PIC12 с вътрешен и външен осцилатор (външния на 20MHz) - еднакво се държи ПППП: След като запиша чипа, го слагам на бредборд, като само му свързвам захранването и с един джъмпер свързвам сондата към gpio-то. Това може ли да влияе? Пробвах да сложа 100nF на VDD и VSS на пика.
|
| Нед Юни 27, 2021 5:00 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Тема за бързи и тъпи въпроси
Нулирането е една инструкция. След това имаш подготовка за високо ниво(една инструкция), но пина все още е в ниско ниво. Чак на втората инструкция нивото се вдига и веднага след това пак се нулира. Осцилограмата ти е вярна, логиката и разсъжденията - не.
За честотата пак си провери къде какво си му задал като настройки. Очевидно работи на по-ниска честота, отколкото очакваш.
|
| Нед Юни 27, 2021 5:28 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
Прав си, нещо се обърках, но не разбирам, защо 1 инструкция е 1 uS. Дори при честота 4MHz, трябва да е около 250 ns за цикъл. От конфигурационните битове пробвах да задам вътрешен осцилатор, пробвах и с външен. Лошото е, че за PIC12F629, няма много описано за осцилатора.
|
| Нед Юни 27, 2021 5:34 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Тема за бързи и тъпи въпроси
При 4MHz инструкцията е 1 микросекунда. При 20MHz една инструкция е 20 наносекунди. При пиковете честотата се дели на 4.
|
| Нед Юни 27, 2021 5:46 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
Чакай, защо 20 наносекунди? Не трябва ли да е 200 наносекунди при 20MHz. Иначе дейташийтът е много постен.
|
| Нед Юни 27, 2021 6:02 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2664 Местоположение: София / Велико Търново
|
 Re: Тема за бързи и тъпи въпроси
Мда clrf PORTA за ресетване и movlw 0xFF movwf PORTA за сетване
|
| Нед Юни 27, 2021 6:02 pm |
|
 |
|
CarBeta
Ранг: Форумен бог
Регистриран на: Пет Май 01, 2009 4:01 pm Мнения: 1438
|
 Re: Тема за бързи и тъпи въпроси
200 е, изял съм при писането една нула
|
| Нед Юни 27, 2021 6:07 pm |
|
 |
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 8:04 pm Мнения: 2664 Местоположение: София / Велико Търново
|
 Re: Тема за бързи и тъпи въпроси
Сетваш / ресетваш само един пин. Пробвай с asm("bsf 2"); и asm("bcf 2"); или точно както е синтаксиса за inline asm.
|
| Нед Юни 27, 2021 6:26 pm |
|
 |
|
kalata23
Ранг: Популярен
Регистриран на: Пон Дек 15, 2014 11:05 pm Мнения: 332
|
 Re: Тема за бързи и тъпи въпроси
С 20MHz кристал стана работата. 200 ns за 1-ца и 400ns за 0. Бях забравил, че честотата = Fosc/4.
|
| Нед Юни 27, 2021 6:34 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 11 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|