Sari la conținut
ELFORUM - Forumul electronistilor

PIC 12F675 / Help !


Vizitator albtech

Postări Recomandate

Vizitator albtech

Nu reusesc sa scriu un program in MikroC Pro si sa-l fac functional..Vreau sa aprind niste LED-uri pe rand pe GP0,GP1 si GP2 , cu delay-uri diferite..Nu imi dau seama care ar trebui sa fie config. bune din compiler-ul IC-Prog pentru PIC 12F675.Poate cineva sa ma ajute ?

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

Top autori în acest subiect

  • Mircea

    2

  • kit

    1

  • grifonul_alb

    1

  • Bandi Szasz

    1

Top autori în acest subiect

Imagini postate

Vizitator albtech

Hi !revin si atasez programul ce l-am scris in MikroC:void init_ports (void) { OSCCAL = 111111; // set OSC max. TRISIO = 0; // set pins as OUTPUT}// start herevoid main() {while (1) { // infinite loopGPIO = 1 ; // set outputs HIdelay_ms(500);GPIO = 0 ; // set outputs LOWdelay_ms(500)}}Poate cineva sa-l verifice ?Multumesc pt raspunsuri !

Link spre comentariu

Am gasit si testat acest link http://electronics-diy.com/running-leds-pic-12f675.php

 

acesta este codul testat de mine:

 

void main() {

OSCCAL = 111111; // set OSC max.

ANSEL = 0x00; // Setare porturi analog-digital

CMCON = 0x07;

TRISIO = 0x00; // set pins as OUTPUT

 

while (1) { // infinite loop

// GPIO = 1 ; // set outputs HI

GPIO.GP0 = 0;

GPIO.GP1 = 0;

GPIO.GP2 = 0;

delay_ms(500);

// GPIO = 0 ; // set outputs LOW

GPIO.GP0 = 1;

GPIO.GP1 = 1;

GPIO.GP2 = 1;

delay_ms(500);

}

}

 

si functioneaza in simulatorul PR OT EuS

 

post-38254-139829604277_thumb.jpg

Link spre comentariu

OSCCAL este necesara pentru calibrarea oscilatorului intern, pentru ca acesta sa ruleze la 4 MHz.aceasta valoare este stocata in ultima locatie de memoriei program, 0x3ff, sub forma unei instructiuni RETLW xx, unde xx este valoarea calibrata.secventa de obtinere a OSCCAL este:...BSF STATUS,RP0CALL 0X3FFMOVWF OSCCAL...indicat ar fi sa nu pierzi valoarea de la 0x3ff. o poti oarecum reface doar cu un osciloscop.valoarea atribuita in program este... hmmm.ar fi bine sa revezi sectiunea 9.2.5. din manual.bafta

Link spre comentariu

Thank you Thunderer ! La configurari, ma refer la compiler-ul IC-Prog.Pentru PIC 12F675 ce valori trebuiesc setate la oscillator si la fuses ?Cand programez PIC-ul si il pun in montaj , imi face impresia ca nu e setatbine oscilatorul intern , si montajul e mort.....

Numai tu stii la ce frecventa sa alegi oscilatorul. In MikroC temporizarile nu depind de frecventa (pentru temporizari genul jumatate de secunda). Apoi, setarile de biti de configurare depind de schema ta, de ex. daca pin MCLR este MCLR sau I/O. Tot ce scrii in Edit Project il repeti in IC-Prog (bit cu bit). Oricum, HEX-ul generat de MikroC are setarile controllerului incluse, nu ai nevoie de alte setari. Incarci HEX si scrii. Este drept, eu folosesc Pickit2 si merge direct asa cum am descris.In ceea ce priveste calibrarea OSC, uita de ea, pentru 500ms este bun asa cum e calibrat din fabrica. Si MikroC stie sa-ti seteze tot ce-ti trebuie, nu te mai complica cu OSCCAL.
Link spre comentariu
  • 2 luni mai târziu...

@thundererEu am impresia ca tine si de valoarea setata (iar cele interne sunt bune in caz in care temporizarea nu este critica pentru ca nu sunt precise) .La mine (un ceas) PIC-ul este setat ca in fiecare 10s sa ceara RTC(DS1307) datele noi despre ceas.Si in montaj citirea din DS nu se face la fiecare 10s si nu la alta valoare stabila ci la valori diferite care in mare parte sunt intre 8-15s deci ce sa zic cam mari diferente.Acuma la mine nu este asa mare problema ca ceasul depinde de RTC( n-am avut posibilitatea de a pune unul extern ca imi trebuie pentru montaj toate I/O urile imi ramane numai 1 neutilizat).In concluzie poti alege orice valoare ca cele interne no sa aiba o precizie prea buna.@kit daca pierzi valoarea cu PICkit2 se poate recupera destul de usor.

Link spre comentariu
  • 4 luni mai târziu...
Vizitator albtech

Salut Baieti !mai am o nelamurire :Daca: GPIO= 1 (Hi) sau la pin da un semnal pozitiv ( output) GPIO=0 ( Low)cum fac sa nu dea nici un semnal ( nici + nici -) ? am observat in data sheet-ul microchip ca ar fi si varianta Z pt GPIO, adica nici un semnal.Dar care este sintaxa in "C" ? ( cum s-ar scrie ?) Vreau sa programez o matrice de leduri si pentru a actiona 20 de leduri (5x4)imi trebuie si comanda pentru a nu da nici un semnal pe pinii de output .Are cineva vre-o idee ?

Link spre comentariu

Foloseste registrul TRISIO pentru a activa/dezactiva iesirile pinilor. Valoarea 1 a unui bit din TRISIO face acel pin intrare (high-Z), iar 0 face acel pin iesire, avand tensiunea de iesire in functie de valoarea din GPIO (1=Vdd 0=GND).

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