Sari la conținut
ELFORUM - Forumul electronistilor

PIC 16F88 PORB ca intrare


Kreator

Postări Recomandate

Buna ziua,

 

Am facut un proiect cu PIC 16F88.

Problema pe care o intampin vine de la PORTB 4-7 definit ca intrare digitala.

Picul l-am initiat asa:

        AllDigital	OSCCON = %01110111	ANSEL = %00000000  'All I/O pins are configured as digital	CMCON = %00000111  'Disable comparators	TRISA = %00000000  'PORTA All Outputs	TRISB = %10010000  'PORTB All Outputs, Except RB4&RB7	INTCON = %10100000	OPTION_REG = %10000110

Se observa ca PORTB este weak pull-up dat de OPTION_REG.7 =1

Evenimentul de la Click la RB4 la intrerupere este:

If PORTB.4 = 0 Then	If x0 = 0 Then	   x0 = 1	   PORTA.2 = Not PORTA.2	Endif	Else	x0 = 0Endif

si PIC-ul functioneaza OK, la fiecare apasare la RB4 PORTA2 schimba starea.

Atunci cind mai adaug si un eveniment la RB7 ca in exemplu:

If PORTB.4 = 0 Then	If x0 = 0 Then	   x0 = 1           PORTA.2 = Not PORTA.2	Endif	Else	x0 = 0EndifIf PORTB.7 = 0 Then	If x0 = 0 Then	   x0 = 1	   PORTA.2 = Not PORTA.2	Endif	Else	x0 = 0Endif

PORTA.2 palpaie ca si cum ar oscila.

Daca nu conectez push-urile la PORTB, teoretic pinii RB 4 si 7 ar trebui sa ramana in 1 ca-s configurati ca pull-up dar tot se intampla sa execute codul de la RB4.

De ce?

 

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

Top autori în acest subiect

  • Kreator

    3

  • sofian

    1

  • Liviu M

    1

  • UDAR

    1

Top autori în acest subiect

Imagini postate

”Se observa ca PORTB este weak pull-up dat de OPTION_REG.7 =1”

Citat din DS : 

”Each of the PORTB pins has a weak internal pull-up. A single control bit can turn on all the pull-ups. This is performed by clearing bit RBPU (OPTION_REG<7>).”

Link spre comentariu

Hm, ce limbaj e asta?

In basic nu era

if conditie thenelseendif

?

Daca e cum zic eu, ifurile tale sunt "defecte", Codul se compileaza?

 

LE Sorry, cred ca m-au pacalit indenturile. Ignora ce am scris mai sus.

Editat de Liviu M
Link spre comentariu

@ Udar - Multumesc. Acolo era greseala cu pull-up. Problema persista atunci cand adaug eveniment pe oricare pin RB 5-7.

 

 

LE Am gasit greseala

 

in evenimentul de la celalalt port trebuie schimbat xo=0 in x1 ca in exemplul

If PORTB.4 = 0 Then   If x0 = 0 Then      x0 = 1      PORTA.2 = Not PORTA.2   EndifElse   x0 = 0EndifIf PORTB.7 = 0 Then   If x1 = 0 Then      x1 = 1      PORTA.2 = Not PORTA.2   EndifElse   x1 = 0Endif

Multumesc mult  UDAR si Liviu M pentru interes si implicare!

Editat de Kreator
Link spre comentariu
  • 2 săptămâni mai târziu...

Cu scuzele moderatorilor, continui aici cu o alta problema.Lucrez la un radio - ceas cu PIC16F88, TEA5767, DS 3232 si afisaj de Nokia 3310.Ce-a iesit arata cam asa:

post-175068-0-66067600-1407788453_thumb.jpg

Optiunile pt radio: Autocautare, Preset si Mute merg OK, radio-ul se aude super.

Partea de ceas: citeste si afiseaza ok, dar a fost initiat separat cu alt program.

Cum partea grafica si calculele cu numere de tip long mananca cam multa memorie, mi s-a umplut memoria PIC-ului (98,5%) si nu mai imi incape codul pt setarea ceasului (foarte putine instructiuni zic eu).

Stiu ca se poate optimiza programul, unele programe ofera aceasta optiune la variantele contracost.

Intrebarile sunt:

- In ce consta optimizarea hex-ului la PIC-uri?

- Daca stiti vreun program free care poate folosi toata memoria unui PIC1847 (14k)?

Multumesc.

 

L.E.

Asa arata memoria PICului:

post-175068-0-65267900-1407791329_thumb.jpg

Ce reprezinta "Free GPR Location"?

Multumesc!

Editat de Kreator
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