Sari la conținut
ELFORUM - Forumul electronistilor

probleme program PIC16F877A


Postări Recomandate

Daca ai inteles ce se intampla cu variabilele neinitializate si daca ai facut debounce hardware, o sa-ti functioneze corect montajul.

Pe de alta parte, cred ca pe un forum, indiferent de ce spun participantii la discutie, este normal sa ne comportam civilizat si sa nu privim pe nimeni de sus, chiar daca credem ca stim perfect totul.

Intentia mea a fost doar de a te ajuta, iar reactiile care au urmat dupa prima mea postare in acest topic m-au dezamagit si m-au dus cu gandul la o celebra zicala romaneasca.

Imi cer scuze pentru offtopic si iti urez succes.

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

Top autori în acest subiect

Top autori în acest subiect

Inca odata imi cer scuze daca ti s-a parut ca am fost nepoliticos. Emoticonul respectiv a fost sub forma de gluma. O chestie de moment. Chiar n-a fost cu intentie. Dupa ce am postat am vrut sa modific dar ce e scris, scris ramane. Nu cred ca mi se potriveste zicala aceea romaneasca daca e ceea ce cred eu pentru ca nu-mi sta in caracter un asfel de comportament

Editat de Myhayxx
Link spre comentariu

Cam asa as vedea eu lucrurile:

unsigned short current_duty, Button_state;#define false    0#define true     1void InitMain() {  PORTA = 0;  TRISA = 0;  PORTB = 0;  TRISB = 0xff;  PORTC = 0;  TRISC = 0;  TRISD = 0xfd;  Button_state = 0;  PWM1_Init(5000);}  void main() { InitMain();     current_duty  = 20;    PWM1_Start();     while (1) {     if (RB6_bit) {       Delay_ms(10);	   while (RB6_bit){		if(current_duty < 255) {			current_duty++;			PWM1_Set_Duty(current_duty);			Delay_ms(100);		}	   }         }   if (RB7_bit) {      Delay_ms(10);	  while (RB7_bit){		if(current_duty > 0) {			current_duty--;			PWM1_Set_Duty(current_duty);			Delay_ms(100);		}	  }        }     if (PORTB.B5){		Delay_ms(10);		if (PORTB.B5){			Button_state = true		}	 }	 if ((PORTB.B5==0) && (Button_state == true)){		Button_state = false;		~PORTD.B1			 }}}
Link spre comentariu
  • 10 luni mai târziu...

Salut. Imi cer mii de scuze ca poluez topicul aici dar nu am vrut sa deschid topic nou.

Am o problema cu pic 16f877a. Mai exact problema consta nu in PIC ci in placa realizata pt el.

Pe placa de dezvoltare merge perfect. Pe placa realizata de mine nu merge bine.

Ciudatenia consta in faptul ca functioneaza corect cand ating cu degetul unii pini ai picului. Mai des se intampla cand ating pinii alimentati cu 5v.

Am incercat sa conectez pinii cu 5v la diferiti pini ai picului prin o rezistenta de 75k. Rezultatele sunt f modeste Nu am reusit sa am un rezutat ferm.

Cineva are o idee unde sa caut problema?

Alimentarea este sigura pt ca am led de control pt asta

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

16f877a nu are oscilator intern prin urmare trebuie selectat corect in firmware / CONFIG register, tipul de oscilator extern folosit.

 

Probleme de instabilitate pot fi generate de:

- tensiune de alimentare sub valoarea minim acceptata de microcontroler / lipsa condensator de decuplare de 0.1 uF intre pinii de alimentare ai uC-ului.

- lipsa rezistorului de cca 4.7K .... 47K intre VCC si pinul MCLR

- oscilator instabil, configurat incorect sau conectat incorect.

 

BTW, rezonatoarele ceramice au nevoie si de un rezistor de cca 1Mo conectat in paralel, ca sa porneasca (au factorul Q mai mic). Cristalele de cuartz nu au nevoie.

LE: Se pare ca uC-ul are deja un rezistor paralel integrat (cu valoare intre 2Mo si 10Mo): http://ww1.microchip.com/downloads/en/DeviceDoc/31002a.pdf

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