Sari la conținut
ELFORUM - Forumul electronistilor

Precizie perioada de timp


iuli09

Postări Recomandate

  • Răspunsuri 40
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

Top autori în acest subiect

Imagini postate

Acum 14 minute, Liviu.Mihaiu a spus:

Si cred ca nu a inteles inca ca nici PIC si nici functia delay nu are de unde sa stie la frecventa merge oscilator.

Parerea mea.

Funcția ”delay_ms” ( sau _us ) nu este o funcție adevărată ci o funcție ”in line” (poate ”macro” era mai aproape de adevăr) care constă dintr-un șir de întârzieri cu valori decise de compilator.

Acesta deci trebuie să știe frecvența oscilatorului și o ia - presupun - din ”Project edit ”.

Frecvența ”fizică” a oscilatorului se setează din diferiți regiștri și/sau cuvinte de configurare . Totuși compilatorului trebuie să-i comunici această ferwecvență în ”Project edit” . Nu sunt convins că și-o ia singur din configurări , ba mai degrabă sunt aproape convins că nu și-o ia. 

Link spre comentariu

Hai sa iti explic ce si cum, daca citesti la capitolul Osc pentru registrul "OSCFRQ" ai sa vezi ca iti zice ca la POR (pornire uC) valorile implicite sunt "110" pentru NOSC, acuma daca te duci in tabelele "TABLE 7-1" si "TABLE 7-2" verificand cele doua valori ai sa vezi ca pentru valorile implicite rezulta "HFINTOSC (1 MHz)" si divizor 1:1 care inseamna ca daca tu nu faci nici o modificare la aceste valori PIC-ul tau va porni cu osc-ul intern setat la 1Mhz.

 

Acel camp de "CPU Clock Frequency" din Edit Project este strict pentru compilator si este folosit pentru anumite functii cum este delay_ms, acolo poti pune orice valoare absurda vrei penrtu ca nu are nici o importanta pentru setarea osc-ului, tot ce face este sa ii zica compilatorului ca tu prin registrii "OSCCON1/2/3" ai setat PIC-ul la frecventa X (si de acolo compilatorul stie sa iti genereze corect functia delay_ms care nu este altceva decat un 'while' cu instructiuni nop, numarul instructiunilor 'nop' necesare depinde de frecventa si de aici nevoia de ai zice compilatorului frecventa corecta). Din moment ce PIC-ul porneste cu osc-ul intern la 1Mhz pentru a obtine valoarea corecta in delay_ms trebuie sa ii zici compilatorului ca tu ai folosit osc de 1Mhz si cam asta este motiv pentru care cand ai pus 1Mhz delay_ul a inceput sa mearga corect.

 

Incearca sa setezi: OSCCON1 la "0x70" , o sa forteze PIC-ul sa treaca la osc-ul ales din CONFIGURATION WORD 1 (setarea FEXTOSC din Edit Project) si sterge din cod "OSCEN = 0;" ca nu are nici o logica sa-l fortezi la 0. Si asigurate ca programatorul pe care il folosesti recunoaste corect CONFIGURATION WORDS generati de MikroC (daca folosesti Pickit2/3 nu ar trebuii sa fie probleme).

 

Insa din nou, pentru ce cerinte ai poti linistit ramane la osc-ul internel setat implicit la pornire la 1Mhz si setezi corect in Edit Project "CPU Clock Freq." la 1Mhz (daca vrei mai mult de la osc-ul intern il poti urca din "OSCFRQ" conform tabelului pana la 32Mhz si setezi aferent in Edit Project frecventa aleasa din registru)

 

Editat de Bandi Szasz
Link spre comentariu
Acum 25 minute, UDAR a spus:

OFF TOPIC . Cu ce programați PIC16F18313 ( și celelalte cu 5 cifre ) ?

 

Eu folosesc clona de Pickit 3 (de la Chinezi) cu MPLAB X IPE (echivalentul softului pentru PICkit2), fata de PICkit2 e o mizerie dar iti faci treaba cu el. Acest minunat  Pickit 3 se reprogrameaza singur cand iti alegi modelul de PIC pe care vrei sa-l programezi (isi descarca de pe net un soft nou si prin bootloader se re-programeaza), problema intervine cand din varii motive merge prost re-programarea si se blocheaza.... trebuie reprogramat uC din el PIC24FJ256GB106. Am programat cateva bucati din PIC-urile astea noi cu 5 cifre si pana acuma nu am avut probleme cu el, oricum il scot doar cand nu merge cu PICkit2..

Editat de Bandi Szasz
Link spre comentariu
6 minutes ago, Bandi Szasz said:

 

Eu folosesc clona de Pickit 3 (de la Chinezi) cu MPLAB X IPE (echivalentul softului pentru PICkit2), fata de PICkit2 e o mizerie dar iti faci treaba cu el. Acest minunat  Pickit 3 se reprogrameaza singur cand iti alegi modelul de PIC pe care vrei sa-l programezi...

Acel IPE care cere doar vreo 400MB de spatiu pe HDD. 

 

In plus, refuza sa gasesca fisierul HEX care e depus in structura Mikroelektronika. Deci, trebuie copiat HEX-ul in alta locatie, cu orice alt nume care nu contine Mikroelektronika. 

 

Pentru cei care vor un programator: daca lucrezi in invatamant sau esti student ai tot timpul 25% reducere la cumparare. Uneori merita.

Link spre comentariu
Acum 2 ore, Mircea a spus:

Acel IPE care cere doar vreo 400MB de spatiu pe HDD. 

 

In plus, refuza sa gasesca fisierul HEX care e depus in structura Mikroelektronika. Deci, trebuie copiat HEX-ul in alta locatie, cu orice alt nume care nu contine Mikroelektronika. 

 

Pentru cei care vor un programator: daca lucrezi in invatamant sau esti student ai tot timpul 25% reducere la cumparare. Uneori merita.

 

Eu am instalat tot pachetul inclusiv IDE-ul (folosesc doar code configurator din el pentru timere / CLC -uri / etc, si copiez codul generat in MikroC) si nu am nici o problema cu IPE-ul, dupa ce se conecteaza la PIC si il detecteaza cu butonul de "browse" selectez HEX-ul indiferent unde este, chiar si din folderul creat de MikroC Pro (varianta free pe care l-am convins ca merit mai mult cod decat 2k :rade: ). Acum cat ocupa nici nu prea m-a interesat sa verific, am vro 3TB spatiu

Editat de Bandi Szasz
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