Jump to content
Sign in to follow this  
mitumunteanu

PIC 18F2550

Recommended Posts

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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We use cookies and related technologies to improve your experience on this website to give you personalized content and ads, and to analyze the traffic and audience of your website. Before continuing to browse www.tehnium-azi.ro, please agree to: Terms of Use.