Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

Multumesc dar nu ma bag sa modific manual atat timp cat nu am inteles cum functioneaza fusebits. Mi-e teama ca blochez uC-ul.

Singura modificare as fi facut-o la CKDIV8 debifand optiunea dar nu am inteles ce rol are Divide clock by 8. Adica daca il bifez imparte frecventa la 8 si lucreaza la 1MHz, iar daca il debifez lucreaza la 8MHz?

Link spre comentariu

initial el vine cu CLKPS3:CLKPS0 = 0000. Adica divizeaza clk de la oscilator cu 1. Dar poti diviza clk cu 2 pana la 256 (pagina 47 in datasheet). 

The CKDIV8 Fuse determines the initial value of the CLKPS bits. If CKDIV8 is unprogrammed, the CLKPS bits will be reset to “0000”. If CKDIV8 is programmed, CLKPS bits are reset to “0011”, giving a division factor of 8 at start up. This feature should be used if the selected clock source has a higher frequency than the maximum frequency of the device at the present operating conditions. Note that any value can be written to the CLKPS bits regardless of the CKDIV8 Fuse setting. The Application software must ensure that a sufficient division factor
is chosen if the selected clock source has a higher frequency than the maximum frequency of the device at the present operating conditions. The device is shipped with the CKDIV8 Fuse programmed.

Deci se pare ca pana la urma tot la fuse ajungi.

CKSEL3...0 trebuie sa fie 0010 pentru oscilator intern 8MHz (pagina 43 in datasheet). Depinde si de CKDIV8 Fuse.

CKDIV8 e in low fuse, bitul 7 si ar trebui sa fie 0. Tot in low fuse mai gasesti CKSEL3...0 (bitii 3...0) si trebuie sa fie 0010.

Nu e neaparat nevoie sa te apuci  sa scrii fuse. Se pot doar citi si vezi din datasheet ce si cum e cu ele.

 

datasheetul il gasesti la https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf

Editat de cimitavita
Link spre comentariu
  • 3 ani mai târziu...

Verificarea octeților înainte de a fi înscriși se poate face pentru EEPROM care are un număr limitat de înscrieri. Dacă octetul ce urmează a fi scris este același cu octetul din EEPROM, este bine să sari peste operația de înscriere EEPROM.

În schimb, biții corespunzători porturilor (ieșire, intrare și DIR) se găsesc în SRAM, așa că numărul înscrierilor în aceste locații este nelimitat. 

 

Și e o diferență între locația unde înscrii bitul de ieșire și starea pinului de ieșire. Starea pinilor de ieșire se sincronizează cu locațiile lor corespunzătoare din SRAM pe durata unui ciclu CLK.

Ca să citești starea unui pin, indiferent dacă acesta este setat pe intrare sau ieșire, o poți face prin locațiile PINx dar numai după ce în prealabil le înscrii cu 0xFF. Dacă un bit din PINx este 0, pinul corespunzător lui, nu va fi citit. 

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

da, am citit.

Parerea mea :

-daca ne rezumam la prima varianta  , se consuma putine cicluri clk ; la fiecare ciclu de program , se va suprascrie valoarea respectiva ; intrebare : cit timp rezista locatia unde se va scrie permanent ? se poate deteriora ? nu am gasit in documentatie referire de cit putem suprascrie 

-daca mergem pe a doua varianta , controlam starea prin citire si apoi se da verdictul ; chiar daca nu se scrie nimic  operatia de contol si constatare consuma mai multe cicluri clk ; deci programul pe ansamblu devine mai lent . 

Editat de spinach
Link spre comentariu

In afara de memoria flash in care se stocheaza softul si memoria EEPROM nu exista limita, cum a zis si colegul antemir spatiul de memorie al porturilor este una de tip RAM deci nu are nici o limita de scriere poti sa scrii cat vrei, cate cicluri de scriere si citire crezi ca se face in memoria de RAM la un PC si merge zeci de ani...

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