Sari la conținut

PIC 18F2550


mitumunteanu
 Share

Postări Recomandate

Salut.

Am inceput de cateva zile sa ma joc cu un PIC 18F2550 si am un facut un numarator(0-9) ce afiseaza pe un display cu 7 segmente. Am concept si un buton cu care sa ii schimb sensul de numarare(crescator sau descrescator). Pt fiecare cifra am facut o functie de afisare, de exemplu pt 8 

void display8()

{

      PORTB = 0b ... ;

      Delay_ms(1000);  // ????

}

Problema este ca functia Delay_ms imi pune o pauza in program si atunci cand vreau sa schimb sensul de numarare trebuie sa tin butonul apasat pana se termina pauza, si abia dupa sa verific daca s-a apasat sau nu.

Am citit ca pot genera intervale de timp cu timerele pic-ului insa nu prea imi dau seama cum sa le folosesc. 

Daca ma poate ajuta cineva asi fi recunoscator

 

Link spre comentariu
Distribuie pe alte site-uri

Poate ar trebui sa prezinti tot programul Si schema ajuta in unele cazuri. La fel tipul de compilator.

Delay_ms(1000) il poti inlocui cu Delay_ms(10) si setarea unui flag.

In acest fel va trece prin programul principal de 100 de ori mai rapid. Daca este flagul setat faci pauza de 10ms de fiecare data si incrementezi un contor. Cand a ajuns la 100 resetezi contorul.

Cifrele nu le incrementezi daca flagul nu este 0. 

Toate astea se afla in bucla de while(1).

Sau cu modificari si folosind timerul si intreruperi ca aici

http://extremeelectronics.co.in/microchip-pic-tutorials/using-multiplexed-7-segment-displays-%E2%80%93-pic-microcontroller-tutorial/

La aceeasi adresa gasesti tutoriale si despre timere si intreruperi.

Link spre comentariu
Distribuie pe alte site-uri

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
 Share

  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock