![]() |
Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
Port de intrare la PIC16F84A
Last Updated: Aug 18 2004 20:02, Started by
carst_razvan
, Aug 17 2004 07:29
·
0

#1
Posted 17 August 2004 - 07:29

Daca declar un port de intrare in TRISB,1, de exemplu, el este setat din prima pe 1, adica cand testezi starea portului btfsc PORTB,1 imi dau seama ca el e pe 1 (cu toate ca dau un clrf PORTB).Adica el din start este activat (are o tensiune la intrare)?
|
#2
Posted 17 August 2004 - 08:27

Cum e? Pina la initializare, deci pina cind RESET'ul este dat liber configuratia lui de default este de "tri state" iar dupa initializare procesorul acorda portilor I/O configuratia stabilita in registre.
Intrarii nu-i este acordata nici o tensiune ci "asteapta semnal". |
#3
Posted 17 August 2004 - 08:35

Iti spun sigur ca la initializare bitul e setat pe 1 din prima.(apare un pull-up, deoarece l-am setat eu in OPTION_REG , bit 7). Ca sa-l aduc in starea pull-down trebuie sa sterg acel bit setat ca intrare din PORTB (in programul meu am folosit RB7,...,RB4 ca port-uri de intrare)
|
#4
Posted 17 August 2004 - 09:07

Atunci da: tri state pina la RESET si pe urma intrare fara tensiune
|
#5
Posted 17 August 2004 - 09:10

M-am documentat si pentru ca sa-l aduc in starea de pull-down trebuie sa conectez rezistente de 10K sau mai mari la pinii de la intrare si puse la masa. Odata ce am facut treaba asta cred ca voi avea starea 0 logic , iar cand primesc un semnal de +5V voi avea starea 1logic. (am facut acest program pentru o tastatura, iar tastele folosesc o logica binara, adica cand apas tasta 9 se trimite semnalul 1001). Intrebarea e daca sunt bune valorile rezistentelor?
|
#6
Posted 17 August 2004 - 09:56

Daca il aduci in starea de pull-down prin conectarea rezistentei de 10k atunci vei avea 0-Logik indiferent de semnalul de la intrare (cred!!). Fa alta treaba:
configureaza-l ca intrare si relizeaza un contact al pinului respectiv cu 5V. La contact inchis trebuie sa citesti lgic HIGH, iar la contact deschis logic LOW. Daca nu poti sa citesti prin Soft starea respectiva atunci lasa alt pin ca iesire sa-ti dea sincron acelasi semnal ca cel de pe portul tau de intrare. Tre sa reiasa din documentatie care bit al regustrului de configuratie (ceva de gen DDR) pentru ce este: Intrare pull-up sau pull-down, Iesire, tri-state |
#7
Posted 17 August 2004 - 10:02

Cam la toate procesoarele configuratia de intrare care se foloseste nu are nevoie de rezistente de pull-up sau pull-down. Cind procesorul lucreaza in mediu distorsionat atunci intrarile sint critice din punct de vedere "electro-magnetizm", si atunci trebuiesc configurate chiar si cu potentiale fixe date prin rezistente de tip pull-up/down astfel incit eventualele distorsiuni sa nu deranjeze functionalitatea asa incit fie ca procesorul se strica fie ca Watch-Dog-ul comanda RESET etc etc.
Pentru potential definit se folosesc valori ale rezistentelor de 4...10k. 10k e OK |
#8
Posted 17 August 2004 - 13:22

din cate stiu eu, la pic porturile sunt open-colector, B-ul cu 'weak pull up', deci starea lui normala e 'tri-state', cand scrii un zero, se leaga la masa, cand scrii 1, are tens. din rez. de pull-up externa, pe care o legi tu.
|
#10
Posted 17 August 2004 - 16:01

am pus rezistenta de 10 k la masa si in momentul in care se testeaza bitul cu pricina(port de intrare) programul se blochiaza. Este prea mare rezistenta?
|
#11
Posted 17 August 2004 - 16:08

Porturile de intrare sunt setate din start cu pull-up . Il putem scoate doar prin setarea bit-ului 7 la 1 in registrul OPTION_REG. Eu am nevoie de el, pt. ca am o tastatura. Problema e ca logica pe care am folosit-o in constructia circuitului e cea satisfacuta de starea pull-down a portului.
|
|
#12
Posted 17 August 2004 - 16:48

Se poate sa am in acelasi timp port-uri de intrare cu pull-up si altele cu pull-down?
|
#13
Posted 17 August 2004 - 18:44

"Se poate sa am in acelasi timp port-uri de intrare cu pull-up si altele cu pull-down?"
Asta se poate intr-adevar! Vezi in cartea tehnica a procesorului cum trebuie configurat portul respectiv pentru a functiona ca imput. Iar la procesoare nu iti trebuie rezistenta de pull-up sau de pull-down (dupa caz) la intrari decit daca portul respectiv nu se va folosi la nimic. Intr-o asemenea situatie dai portului practic un potential definit pentru a realiza o capabilitate buna contra influentelor elektromagnetice. In situatia ta ai nevoie de o intrare digitala (I/O-Port configurat ca input) care va primi un semnal de 5V = High sau Low (dupa logica) si 0V = invers decit la 5V. Mai departe configurind portul in mod corect il pregatesti pentru informatie. Cind informatia ajunge, vei realiza probabil un algoritm de evaluare/filtrare, dupa care prin program folosesti informatia mai departe. Testeaza intrarea cum ti-am spus: defineste un al doilea port ca iesire si fa togle pe el de cite ori intrarea ta primeste semnal HIGH si masoara acel port de iesire. Daca treaba merge vei avea la acea iesire un semnal sincron cu intrarea respectiva. Pentru semnalul pe intrare poti folosi linistit o lita de legatura intre VDD = 5V si portul de intrare. O rezistenta de 10k nu poate fi mare acolo este vorba de cel mult 0.5mA!!! Hai ca e treaba numai de configuratie, dar lasa te rog rezistenta aia la o parte ca nu-ti trebuie. |
#14
Posted 17 August 2004 - 18:49

Inca o chestie: treaba cu lita e numai o verificare pe care o faci rapid, deci nu legi lita fix la portul de intrare ci dai un impuls scurt. Eventual pune o rezistenta de 10k intre VDD si lita respectiva!
|
#15
Posted 18 August 2004 - 08:36

In programul meu am declarat RA3,RB1,RB2 ca iesire, RB3,RB4,...RB7 ca intrare. La RB4,...,RB7 am legat o tastatura de la care primesc semnal intr-o logica binara (tasta 5 semnal 0101, adica 1 logic pe RB4 si RB6). Dar porturile mele de intrare sunt pe 1 logic si atunci tot algoritmul cade(am facut circuitul cu diode si am codificat totul binar si ... nu vreau sa-l schimb).Mi-ar conveni tare mult chestia cu pull-down, dar nu mere.(am conectat cele 5 rezistente de 10 K la masa si programul meu cand ajunge sa testeze acele porturi se blochiaza. Nu e problema cu programul pt. ca inainte, cand nu aveam conectate rezistentele functiona pana la faza cu tastatura)
|
#16
Posted 18 August 2004 - 12:14

Aha daca inteleg eu bine electric ar functiona problema, numai logica e inversa. Bine atunci inverseaza semnalele prin tranzistoare care lucreaza in regim de saturatie. Ia de exemplu tranzistoare de tip BCR116: Semnalul de intrare il legi la baza, iar iesirea din colector in intrarea de la procesor, colectorul fiind legat printr-o rezistenta de 4,7k la sursa de 5V. Cind in baza intra 5V, deci "High" colectorul tranzistorului da afara "LOW"
|
|
#17
Posted 18 August 2004 - 16:25

Am dezactivat pull-up (ce-i adevarat ca am uitat) si am lasat rezistentele de 10k conectate la masa. Programul a functionat fara nici o problema. De ce vroia si rezistentele de 10 k, nu stiu? (am scos rezistentele, credeam ca a fost doar o problema soft, si nu a mai functionat. In momentul in care apasam orice tasta el imi afisa ca a fost apasata tasta 1)
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users