Vizitator albtech Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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
Mircea Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 In meniul Edit Project ai bitii de configurare. Link spre comentariu
Vizitator albtech Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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..posting.php?mode=reply&f=11&t=142815#MS pt raspunsul prompt ! Link spre comentariu
Vizitator albtech Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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
grifonul_alb Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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 Link spre comentariu
kit Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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
Mircea Postat Martie 17, 2013 Partajează Postat Martie 17, 2013 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
Bandi Szasz Postat Mai 19, 2013 Partajează Postat Mai 19, 2013 @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
Vizitator albtech Postat Septembrie 21, 2013 Partajează Postat Septembrie 21, 2013 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
10vid Postat Septembrie 22, 2013 Partajează Postat Septembrie 22, 2013 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
Vizitator albtech Postat Septembrie 22, 2013 Partajează Postat Septembrie 22, 2013 Multumesc 10vid !este corect sintactic daca scriu ex. pt GP2:GP2= 1 ( high +)GP2=0 ( low - )TRIS2 = 1 ( comuta in input deci nici un fel de semnal electric la iesire)?? Link spre comentariu
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum