Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Cum se calculeaza timpul de intarziere la PIC16F84A
Last Updated: Jul 25 2004 00:54, Started by
carst_razvan
, Jul 19 2004 16:40
·
0
#1
Posted 19 July 2004 - 16:40
Exista vreo formula ? Am nevoie sa obtin de exemplu o intarziere de o secunda .
Mai bine sa va arat o parte de program: " movlw 0x07 movwf OPTION_REG test1 btfss INTCON, T0IF ;test pentru terminarea contorizarii goto test1" Intrebarea e cat timp sta pic-ul meu in bucla ? Eu am obtinut dupa calculele mele o intarziere de 256*256/4*10^6 . E bine? Si inca ceva !!! Daca incerc sa obtin o secunda in stilul asta, o sa imbatranesc. Cat te-ai chinui nu da o secunda. (am dat toate valorile de la 0...7 prescaler-ului si nimic) |
#2
Posted 20 July 2004 - 09:24
fa si tu o bucla in bucla ....
movlw FFh movwf COUNT1 movwf COUNT2 movlw 10h movwf COUNT3 Loop1 decfsz COUNT1,1 goto Loop1 decfsz COUNT2,1 goto Loop1 decfsz COUNT3,1 goto Loop1 deci ai 16*256*256 ~ 1.048s http://www.mstracey....co.uk/index.htm |
#3
Posted 20 July 2004 - 18:04
ia-ti mplab ide de pe site-ul microchip. e gratis, si are o functie de tip cronometru cu care poti sa verifici daca ai calculat bine
|
#4
Posted 20 July 2004 - 20:56
foloseste JAL - e super usor de lucrat cu el si exista o gramada de exemple pe net...
|
#6
Posted 21 July 2004 - 07:52
"fa si tu o bucla in bucla ....
movlw FFh movwf COUNT1 movwf COUNT2 movlw 10h movwf COUNT3 Loop1 decfsz COUNT1,1 goto Loop1 decfsz COUNT2,1 goto Loop1 decfsz COUNT3,1 goto Loop1 " In exemplul asta nu se ia in considerare faptul ca pentru a executa o instructiune "goto" e nevoie de 2 cicluri. Deci precizia ceasului va fi destul de slaba. Am nevoie sa implementez un ceas cu o precizie mai buna. In al doilea rand lucrez cu un PIC16F84A care nu a auzit de registrul COUNT1. |
#8
Posted 21 July 2004 - 10:40
pagina celui care a conceput JAL-ul si de unde se poate face si download este:
http://www.voti.nl/jal/index_1.html Bafta! |
#9
Posted 21 July 2004 - 10:52
Daca folosesti cristale de quartz (evident, de fapt!), o sa ai si alte surprize mai mult sau mai putin placute! O sa constati ca folosind 2 cristale marcate 4M (de exemplu), rezultatul obtinut este diferit (mai mult sau mai putin). Am intampinat problema asta cind am vrut sa construiesc un frecv. digital, la care am schimbat un pumn de cristale pana am gasit unul "mai bun"!
Concluzia mea e ca nu cred ca poti face ceva extra - precis cu PIC. Sunt convins ca si o modificare a temperaturii capsulei duce la o modificare in timp a frecv. tactului... COUNT1, COUNT2, COUNT3 nu sunt niste registrii dedicati ai PIC-ului ci sunt niste registrii definiti de utilizator... ceva de genul asta: count1 equ 2ch Bafta! |
#10
Posted 21 July 2004 - 13:42
si iesirea din bucla cum o fac?
"movlw FFh movwf COUNT1 movwf COUNT2 movlw 10h movwf COUNT3 Loop1 decfsz COUNT1,1 goto Loop1 decfsz COUNT2,1 goto Loop1 decfsz COUNT3,1 goto Loop1" |
|
#11
Posted 21 July 2004 - 17:11
iese singur...cand termina.
Eu cu un quartz de 10 MHz am facut un ceas soft la un pic18, a ramas precis la secunda timp de o zi (atat am testat). |
#12
Posted 22 July 2004 - 09:13
COUNT-urile 1 si 2 sunt variabile, le declari si tu la 1Ch, 1Dh, ma rog, unde ai chef. dc. ai nevoie de precizie.... pre-incarci TMR cu o val anume... calculezi si tu... : de ex:
movlw 37h movwf TMR0 ...... org 04h incf reg_contor ma rog, mai trebuie cizelata, dar nu am timp acum... care e ideea: incarci TMR0 cu 37h(55 in zecimal), deci mai are de numarat 200 instr. pana la overflow, cand se act. intr. de tmr0 (care te arunca la 04h) deci ai 200us per tmr0 overflow. mai pui prescallerul la 5 si ai 1 ms per intrerupere... mai faci o bucla de ontor in care scazi o valoare.... si o sa obtii pana la urma secunda aia... nu inteleg totusi dc. ai nevoie de temporizare asa de mare.... dc. cumva vrei sa faci frecventzmetru, se poate si mai simplu. ma rog, sper ca ai prins macar ideea. dc. nu, revino cu intrebari. |
#13
Posted 22 July 2004 - 10:43
Am facut un alt exemplu, dar nu stiu de ce sta asa de mult in bucla (cca 8 s):
" PROCESSOR 16f84 #include "p16f84a.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC COUNT1 equ 0x0C org 0x00 goto main org 0x04 goto main #include "bank.inc" main BANK1 movlw 0x00 movwf TRISB BANK0 movlw 0x07 movwf PORTB clrf TMR0 bcf INTCON,T0IF movlw 0xF4 movwf COUNT1 BANK1 movlw 0x03 movwf OPTION_REG Loop1 btfss INTCON,T0IF goto Loop1 bcf INTCON,T0IF decfsz COUNT1,1 goto Loop1 BANK0 movlw 0xF8 movwf PORTB BANK0 clrf TMR0 bcf INTCON,T0IF BANK1 movlw 0x07 movwf OPTION_REG ;s-a programat contorizarea (prescalerul , TMR0) test2 btfss INTCON, T0IF goto test2 goto main end " |
#14
Posted 22 July 2004 - 11:12
nu e totusi mai simplu asa?!?:
//////////////////////////////////////////////// include 16f84_4 include jlib pin_a0_direction = output forever loop pin_a0 = high delay_1s(1) pin_a0 = low delay_1s(1) end loop ///////////////////////////////////////////////// NU PRIMESC PROCENT DE LA AUTOR! dar chiar este mai simplu de lucrat in JAL! |
#15
Posted 22 July 2004 - 11:33
@thepuiu: si dc. mai vreau sa fac ceva in timpul asta (afisez ceva pe lcd, calc. variabile, comunic pe rs232...) ai o solutie in JAL?
|
|
#16
Posted 22 July 2004 - 15:18
Am folosit programul asta si sta pic-ul asta vreo 10 secunde. Nu mai vreau o se cunda, vreau un program care sa mearga si sa aiba o logica. Nu stiu ce are , folosesc ca oscilator XT-ul si am scris programul.M-am chinuit toata ziua si am ajuns la concluzia ca nici un program nu e bun. Ultimul program facut este:
" PROCESSOR 16f84 #include "p16f84a.inc" #include "bank.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC cont equ 0x0C org 0x00 goto main main BANK1 movlw 0x00 movwf TRISB BANK0 movlw 0x07 movwf PORTB clrf TMR0 bcf INTCON,T0IF movlw 0xF4 movwf cont BANK1 movlw 0x03 movwf OPTION_REG BANK0 Loop1 btfss INTCON,T0IF goto Loop1 bcf INTCON,T0IF decfsz cont,1 goto Loop1 movlw 0xF8 movwf PORTB clrf TMR0 bcf INTCON,T0IF movlw 0xF4 movwf cont BANK1 movlw 0x03 movwf OPTION_REG BANK0 Test btfss INTCON,T0IF goto Test bcf INTCON,T0IF decfsz cont,1 goto Test goto main end" |
#17
Posted 22 July 2004 - 16:51
Alta era problema (nu programul). Schema cu led-uri mi-a dat-o un tip care a setat rezonatorul la 455KHz.
|
#18
Posted 22 July 2004 - 20:09
pt: deejay2k1
nu am inteles ce vrei sa zici... daca te referi la existenta rutinelor in JAL pt cele spuse de tine... raspunsul este DA! Daca nu, fii te rog mai explicit... |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users