Sari la conținut
ELFORUM - Forumul electronistilor

Utilizare Timer/Counter


spinach

Postări Recomandate

salutam,Dupa ce am studiat problema , am capatat 3 semne de intrebare , astfel:1. Pot merge in paralel cele trei taimere/counter si programul din cod ?2. Pot fi utilizate in cod cele 6 flaguri disponibile (2 buc /taimer_counter)?3.Cum este mai bine de facut jonctiunea cu codul: a.prin flaguri b.prin intreruperi ?

Link spre comentariu
  • Răspunsuri 2
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • danzup

    1

  • spinach

    1

Top autori în acest subiect

1. Da. Reciteste datasheetul.2. Ce flag-uri mai exact? Reciteste datasheet-ul si te prinzi. Probabil ca da.3. Nu exista metoda perfecta. Depinde ce vrei sa faci. Reciteste datasheet-ul. Dupa ce intelegi cum functioneaza iti dai seama singur ce metoda poate fi aplicata, in ce situatie si care sunt avantajele si dezavantajele fiecareia.Ca principiu contoarele alea functioneaza independent unele de altele si numara fiecare in legea lui, asa cum au fost programate, fara sa ii pese ce se intampla in celelalte numaratoare sau cu ce se ocupa unitatea centrala. Numaratorul numara in legea lui restul procesorului isi vede te treaba lui.Actualizarea bitilor de stare de prin registrii si alti indicatori ce tin de countere se face hardware, in timp real. Acei biti reflecta starea numaratoarelor indiferent ce executa restul procesorului, fara sa-l deranjeze, sa-l incurce sau sa-l incetineasca. Asta e valabil la orice periferic nu numai la timer.Exista unele bucati comune, cum ar fi prescalerele, dar scrie clar in datasheet care sunt bucatile comune mai multor timere sau chiar mai multor periferice, si in ce conditii pot fi folosite la comun sau separat..La fel se intampla si cu celelate periferice. Convertorul isi vede de treaba lui nestingherit, indiferent ce ruleaza uC in timpul ala cat se face conversia, numaratoarele numara, portul serial emite si receptioneaza, toate in acelasi timp fara sa se incomodeze unul pe altul. Bineinteles in tot timpul asta unitatea centrala (o botez UC) isi ruleaza programul nestingherita. Se intrerupe din ce (program) face ea numai daca un periferic genereaza o intrerupere. Evident ca daca nu sunt activate intreruperile UC nu se mai opreste chiar daca perifericul genereaza intreruperea.Mai reciteste datasheetul, uita-te la schema bloc a uC, incearca sa intelegi ce face fiecare bucata si cum sunt legate intre ele. Apoi vezi cum e organizata memoria. Pe urma incearca sa intelegi cum se executa instructiunile in uC. Se executa pe rand una cate una.Ca o regula generala, semnale importante de la/spre periferice sumt mapate in cate un bit dintr-un registru al perifericului.De exemplu, atunci cand citest registrul de date pentru un port de intrare:poti sa consideri ca citesti direct sarmele legate la piciorusele uC corespunzatoare portului x, nu te mai gandi ca de fapt citesti un registru care reflecta starea de pe sarmele de intrare ale portului x.Actualizarea asta (ce e pe portul x e si in registru) se face hardware nu software.Adica o face chiar schema interna a uC, nu e nevoie de niciun program pentru asta.In plus faptul ca ce e pe portul x e si in registrul corespunzator nu incetineste si nu incurca cu nimic executia programului din uC.

Link spre comentariu

1. Da. Reciteste datasheetul.

2. Ce flag-uri mai exact? Reciteste datasheet-ul si te prinzi. Probabil ca da.

3. Nu exista metoda perfecta. Depinde ce vrei sa faci. Reciteste datasheet-ul. Dupa ce intelegi cum functioneaza iti dai seama singur ce metoda poate fi aplicata, in ce situatie si care sunt avantajele si dezavantajele fiecareia.

 

Ca principiu contoarele alea functioneaza independent unele de altele si numara fiecare in legea lui, asa cum au fost programate, fara sa ii pese ce se intampla in celelalte numaratoare sau cu ce se ocupa unitatea centrala. Numaratorul numara in legea lui restul procesorului isi vede te treaba lui.

Actualizarea bitilor de stare de prin registrii si alti indicatori ce tin de countere se face hardware, in timp real. Acei biti reflecta starea numaratoarelor indiferent ce executa restul procesorului, fara sa-l deranjeze, sa-l incurce sau sa-l incetineasca. Asta e valabil la orice periferic nu numai la timer.

 

Exista unele bucati comune, cum ar fi prescalerele, dar scrie clar in datasheet care sunt bucatile comune mai multor timere sau chiar mai multor periferice, si in ce conditii pot fi folosite la comun sau separat..

 

La fel se intampla si cu celelate periferice. Convertorul isi vede de treaba lui nestingherit, indiferent ce ruleaza uC in timpul ala cat se face conversia, numaratoarele numara, portul serial emite si receptioneaza, toate in acelasi timp fara sa se incomodeze unul pe altul. Bineinteles in tot timpul asta unitatea centrala (o botez UC) isi ruleaza programul nestingherita. Se intrerupe din ce (program) face ea numai daca un periferic genereaza o intrerupere. Evident ca daca nu sunt activate intreruperile UC nu se mai opreste chiar daca perifericul genereaza intreruperea.

 

Mai reciteste datasheetul, uita-te la schema bloc a uC, incearca sa intelegi ce face fiecare bucata si cum sunt legate intre ele. Apoi vezi cum e organizata memoria. Pe urma incearca sa intelegi cum se executa instructiunile in uC. Se executa pe rand una cate una.

 

Ca o regula generala, semnale importante de la/spre periferice sumt mapate in cate un bit dintr-un registru al perifericului.

 

De exemplu, atunci cand citest registrul de date pentru un port de intrare:

poti sa consideri ca citesti direct sarmele legate la piciorusele uC corespunzatoare portului x, nu te mai gandi ca de fapt citesti un registru care reflecta starea de pe sarmele de intrare ale portului x.

 

Actualizarea asta (ce e pe portul x e si in registru) se face hardware nu software.

Adica o face chiar schema interna a uC, nu e nevoie de niciun program pentru asta.

In plus faptul ca ce e pe portul x e si in registrul corespunzator nu incetineste si nu incurca cu nimic executia programului din uC.

Off-topic :@RoGeorge nu stiu cum de ai atata rabdare sa explici ceva ce se intelege din citirea datasheet-ului ......

Ontopic : RTFM

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări