Отговори на тема  [ 13 мнения ] 
Колко пъти се изпълнява тази подпрограма 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение Колко пъти се изпълнява тази подпрограма
Колко пъти се изпълнява info_1a? Трябва да е 305, но нещо май не е точно толкова
PIC16F84
Код:
   movlw   B'11000111'
   movwf   OPTION_REG
   bcf      INTCON,T0IF
   movlw   D'65'
   movwf   TMR0
        call       info_1a
..................
...............
info_1a   bcf   PORTA,0   
   nop
   nop   
   nop
   nop
   nop
   nop
   nop
   nop
   bsf   PORTB,2;bqlo
   bsf   PORTB,3
   bsf   PORTB,4
   bsf   PORTA,0;0-sinhro

   movlw   D'5'
   movwf   j;2
loop_1a1   decfsz   j,f
   goto   loop_1a1
   nop
   decfsz   PORTB;j
   movlw   D'5'
   movwf   j;2
loop_1a2   decfsz   j,f
   goto   loop_1a2
   nop
   decfsz   PORTB;sz
   movlw   D'5'
   movwf   j;2
loop_1a3   decfsz   j,f
   goto   loop_1a3
   nop
   decfsz   PORTB;z
   movlw   D'5'
   movwf   j;2
loop_1a4   decfsz   j,f
   goto   loop_1a4
   nop
   decfsz   PORTB;l
   movlw   D'5'
   movwf   j;2
loop_1a5   decfsz   j,f
   goto   loop_1a5
   nop
   decfsz   PORTB;4
   movlw   D'5'
   movwf   j;2
loop_1a6   decfsz   j,f
   goto   loop_1a6
   nop
   decfsz   PORTB;s
   movlw   D'5'
   movwf   j;2
loop_1a7   decfsz   j,f
   goto   loop_1a7
   nop
   decfsz   PORTB;4
   movlw   D'5'
   movwf   j;2
loop_1a8   decfsz   j,f
   goto   loop_1a8
   nop
   nop
   btfss   INTCON,T0IF
   goto   info_1a
   return


Чет Окт 18, 2007 8:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Колкото пъти я викнеш....е, ако питаш колко цикъла, в MPLAB има Stopwatch който може да ти покаже точно колко


Чет Окт 18, 2007 9:01 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение 
Забравих да кажа, че кварца е 10 МХц


Чет Окт 18, 2007 9:27 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение 
Закривам темата


Пет Окт 19, 2007 12:20 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
Ако ще и 100МНz да е кварца, пак никой не може да ти каже колко пъти се изпълнява подпрограмата. Както е написал хищника - колкото пъти я викнеш...


Пет Окт 19, 2007 12:22 am
Профил ICQ
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение 
Аз се оправих с програмта, но нека се изясним, защото не се разбрахме.

info_1a
...........
goto info_1a


Toва питах колко пъти ще се изпълни. GOTO


Пет Окт 19, 2007 10:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Когато искаш да правиш такива сметки - правиш си една клетка брояч и след всяко викане на функцията си я увеличаваш с 1 и след това си проверяваш резултата.


Пет Окт 19, 2007 10:12 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 03, 2006 9:50 pm
Мнения: 39
Мнение 
Идеята по принцип не е лоша, но има един малък недостатък. PIC16 има 8 битова памет. Ако искаме да изпълним един цикъл повече от 2^8 пъти, какво ще стане с брояча. Ще се преълни и ще почне писането все едно (то си е така де) от 0. И сега като прочета после стойността на клетктата няма да съм 100% сигурен за резултата. Е може да се сложи и една проверка дали стойността на клетката е ставала нула, но малко се усложнява.
Иначе идеята да използвам клетка за проверка накрая не е лоша.


Съб Окт 20, 2007 3:20 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Сря Дек 06, 2006 9:05 pm
Мнения: 92
Местоположение: София
Мнение 
Направи си тогава 64 битов брояч :lol:


Съб Окт 20, 2007 3:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение ?
harleybg написа:
Идеята по принцип не е лоша, но има един малък недостатък. PIC16 има 8 битова памет. Ако искаме да изпълним един цикъл повече от 2^8 пъти, какво ще стане с брояча. Ще се преълни и ще почне писането все едно (то си е така де) от 0. И сега като прочета после стойността на клетктата няма да съм 100% сигурен за резултата. Е може да се сложи и една проверка дали стойността на клетката е ставала нула, но малко се усложнява.
Иначе идеята да използвам клетка за проверка накрая не е лоша.


Какво като стане 0 има си команда за изпълнение при резултат 0.
infsz или decfsz

MOVLW 0xFF
MOVWF 0x22
Label_000E
MOVLW 0xFF
MOVWF 0x25
Label_000D
DECFSZ 0x25 , f
GOTO Label_000D
DECFSZ 0x22 , f
GOTO Label_000E
...................................

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


Последна промяна plameniv на Съб Окт 20, 2007 5:54 pm, променена общо 1 път



Съб Окт 20, 2007 4:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Правиш си брояч от 2 клетки:CntHI:CntLO и си увеличаваш при всеки цикъл CntLO.Проверяваш го на всеки път преди да го увеличиш като се препълни - увеличаваш CntHI с 1 а CntLO го нулираш.Ако и този брояч ти се струва малък -> CntHI1:CntHI:CntLO и се прави по същия начин.


Съб Окт 20, 2007 5:25 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение Ммм
Ки4о написа:
Правиш си брояч от 2 клетки:CntHI:CntLO и си увеличаваш при всеки цикъл CntLO.Проверяваш го на всеки път преди да го увеличиш като се препълни - увеличаваш CntHI с 1 а CntLO го нулираш.Ако и този брояч ти се струва малък -> CntHI1:CntHI:CntLO и се прави по същия начин.

Не е ли по лесно при намаляване , проверките са по малко ?

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


Съб Окт 20, 2007 5:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Говоря по принцип,но с декрементиране кода може да е по-компактен.


Съб Окт 20, 2007 7:30 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 13 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни