Sari la conținut

Postări Recomandate

Pinul Reset ce face, reproneste programul???

 

Da. De asemenea se foloseste la programarea uC

de ce ati scris FFh, cand numarul pe care trebuiea sa il introduceti era 111111111 si care era FF in hexazecimal?

 

FFh inseamna FF "hexa", asta inseamna "h"-ul. 11111111 este numar binar, 11111111 binar este acelasi lucru cu FF hexa. Folosesc hexa ca sa nu scriu carnatul ala lung. In tabelul de mai sus in stanga este reprezentarea binara si dreapta hexazecimala.

 

Acum sa vad daca am inteles bine. Pentru ca portul x al microcontrollerului AtMEGA8535 sa fie port de iesire, trebuie sa am 1 in toti registrii sai. El are 8 registrii, dar ne trebuie in hexazecimal, 11111111 fiind FF.

 

Nu. Numai intr-un singur registru, in cazul nostru DDRB. Registrul are 8 biti, nu 8 registrii. Fiecarui bit ii corespunde cate un "1" in binar, de aceea sunt 8 de "1"

 

Incarcam in memorie cu instructiunea ldi, care are formatul general LDI registru, $var, unde registru este registrul de memorie unde incarcam var.

out il folosim pentru a "elimina" curentul prin port, cu formatul general out port, registru, unde port este numele portului, iar registru este registru de memorie de unde ia datele.

 

Nu eliminam curentul prin port. "out" este pur si simplu o instructiune care copiaza o valoare dintr-un registru in altul. In exemplul dat nu apare portul B ci doar registrul DDRB care seteaza directia portului. Daca te uiti pe tabelul cu SFR il gasesti la adresa 17h, deasupra ai PORTB si PINB, acestia se ocupa cu portul propriu-zis. Studiaza registrii cu functie speciala SFR (special function register) pt. ca fara ei nu ai nici o sansa.

 

DDRB inseamna portul B cu memorie DDR???

Si fiecare port corespunde unui pin, sau asta o setez eu???

 

Nu. Cum am mai zis, registrul DDRB seteaza directia portului B in functie de valorile introduse in acest registru. De fapt, corect ar fi sa zic seteaza directia pinilor de la port B deoarece pot, la acest port sa setez 4 pini pt. intrare si 4 iesire(de exemplu)

 

Am vazut pe net un articol despre un sistem de porogramare a unui traseu pentru un robot. Daca as vrea sa il realizez, probabil ca imi va trebui mai multa memorie FLASH decar are un uC. Exista vreo cale s-o obtin???

 

Eu zic ca iti ajunge memoria. Daca nu, conectezi o memorie externa...

Link spre post
Distribuie pe alte site-uri
  • Răspunsuri 45
  • Created
  • Ultimul Răspuns

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Un link despre memoria SFR???

Si toti registriii au 8 biti??

 

Dar out nu da si curent pe port, sau pentru asta trebuie alte instructiuni??

Link spre post
Distribuie pe alte site-uri

Ca sa inteleg, programul de mai sus poare fi folosit ca atare, sau este doar o sectiune dintr-un program mai mare (stiu ca se poate mari programul dar daca pot sa il folosesc in starea in care e)?

instr. "out" da curent la port, sau trebuie o alta instructiune.

Si valorile de "0" si "1", in informatica, inseamna voltaj redus (0) si voltaj crescut (1), la 0 fiind 0 volti, iar la 1 fiind 5 volti. Se aplica si aici acelasi lucru??

Link spre post
Distribuie pe alte site-uri

Din ce a reiesit din program, DEF ii da registrului o alta denumire, rjmp "sare" la o anumita eticheta, in citeste datele de la un port, cpi face o comparatie, si celelalte pe mai trziu.

prin "citeste datele din port" ati vrut sa spuneti daca portul are curent pe el sau nu?

si care este instructiunea care "da curent pe port"?

Link spre post
Distribuie pe alte site-uri
  • 2 weeks later...

Dar ce instructiune citeste datele? Din ce am inteles, trebuie sa setez 0 pe toti bitii registrului corespunzator portului, pentru a fi de intrare. deci, daca pun curent pe el, ar trebui sa pot lua valoare de 1. ce instructiune face asta?

Si cu ce instructiune initiez o bucla? (ceva care repeta, si repeta si tot repeta cateva instructiuni).

Nu am inteles ce e cu out. copiaza datele din registru. Si ce se intampla cu ele? unde le duce?

 

Si nu imi puteti da un link despre SFR?

Link spre post
Distribuie pe alte site-uri
  • 1 month later...

Adry,

 

ce faci tu aici este contraproductiv pe termen lung (pentru tine) daca vrei sa inveti despre microntrollere trebuie sa urmezi un anumit drum, asta nu se invata uitandu-te peste umar la unul care stie.

(nu putem decat sa ma bucur ca vrei sa inveti)

umeaza pasii urmatori.

1. Invata cat mai bine engleza, asta te va ajuta sa citesti documentele care descriu functionarea microcontrolerelor, sau pentru inceput cauta articole scrise in Ro

2.Citeste sursele de informare, incearca sa le intelegi si pune intrebari cu ce n-ai inteles ca sa-ti putem explica.

3. Incearca niste exemple proactice cu o placa de dezvoltare (sau un kit) parcurgand pasii descrisi acolo, daca ceva nu funtioneaza atunci intrebi si noi te ajutam cum putem.

4. la toate punctele de mai sus colaboreaza cu un prieten sau mai multi, unde sunt mai multe capete lucrurile se petrec mai repede si e fun.

Programarea nu se invata pe chat.

sper sa iei ca pe niste sfaturi de la unul care s-a apucat de asta acum 25 de ani in urma, cand nu exista net si carti, voi le aveti folositi-le nu incercat scurtaturi ca trebuie sa treaca prin creier.

 

 

si ca sa raspund la intrebarea ta de mai sus, cel mai simplu e sa programezi in C - in ziua de azi compilatoarele sunt free (in mare parte) si acelasi limbaj il vei folosii la toate, totusi trebuie sa cunosti arhitectura bine ca sa lucrezi eficient cu porturile. Deci cum zicea Ceausescu: invatati, invatati,...invatati (si l-au impuscat)

R.

 

Adry - un sfat important, poate cel mai important - nu-ti pierde entuziasmul!

R.

Link spre post
Distribuie pe alte site-uri

Nu am nici un prieten care sa il intereseze macar electronica. Cativa electricieni mai cunosc, dar nu se ocupa de electronica, ci cu masini de putere si alte chestii. Eu prefer sa le programez in BASIC pentru ca nu stiu C (poate la anul ma apuc de el).

Problema este ca ce am gasit pe net (sa mai caut, poate nu am cautat destul de bine) vorbea despre microcontrollere la un nivel prea mare, pe care nu-l intelegeam. Cu engleza ma descurc destul de bine. Entuziasmul n-am de gand sa-l pierd. Am gasit site-ul inteligenta-artificiala.ro, unde se vorbeste si de roboti (si asta ma intereseaza), si despre microcontrollere, ca un robot fara microcontroller este o masina de jucarie. In plus, progrmele de acolo sint in BASIC, inca un atu. Asa ca imi construiesc un programator, mai caut pe net ceva articole (daca stiti vreunul, va rog sa-l postati), analizez programele de acolo, si cu timpul poate reusesc sa invat mai mult.

Link spre post
Distribuie pe alte site-uri

E bun si BASIC pentru inceput, cauta un compilator ia-ti o placa de dezvoltare (sau kit) un programator si dai bataie. Lasa inteligenta artificiala, stai la aprins leduri si invartit motorase ca nu poati sari pasii importanti.

Si inca ceva, niciodata sa nu zici ca te pricepi la ceva, risti sa nu mai fi luat in seama, eu vorbesc engleza de 10 ani zi de zi si nu pot zice ca "ma descurc destul de bine" ca nu prea stiu ce e destul, la fel si in electronica, nimeni nu poata sa zica ca se pricepe la ceva, doar ca uni stiu mai mult ca altii.

Gata vorbaria ia documentatia si baga mare...

R.

Link spre post
Distribuie pe alte site-uri

Pentru mine "destul" inseamna destul pentru a face ce-mi trebuie, in cazul meu, sa traduc materialul, dar sa lasam filozofia.

Nu am inteles ceva. Placa de dezvoltare este una si aceeasi cu programatorul, sau care e diferenta?

Am inceput de acolo, pentru ca este singurul loc unde pot gasi ceva pe care sa-l inteleg. Eu de acolo iau ideea, pot sa analizez si milioane de programe, tot la leduri si motorase incep.

Mie imi trebuie algoritmul de BASIC, de la care incep si pe care il dezvolt. Asta nu gasesc pe nicaieri.

Si am o intrebare. Microcontrollerul AMTEL 824 84C04 este reprogramabil?

Link spre post
Distribuie pe alte site-uri

Nu inteleg de ce nu te uiti pe site la Atmel...

notiunea de programator e cam invechita, acum circutele aste se programeaza direct in aplicatie (pe placa ta) cu un cablu. (mai sunt placi care un functie dubla mai ales in lumea picurilor)

ma indoiesc ca 824 84C04 e un microcontroller, cauta la www.atmel.com

R.

 

PS - si uita-te in dictionar ce insemna "algoritm" ca sa nu-l folosesti gresit numai pentru ca suna bine.

Link spre post
Distribuie pe alte site-uri

M-am uitat, dar nu am gasit. deci sa inteleg ca placa da dezvoltare este un circuit in care este inclus, pe langa functie circuitului (de amplificator sau orice altceva) si un programator prin care se incarca programul in microcontroller?

Link spre post
Distribuie pe alte site-uri

vrei sa inveti programare pe chat?

ca sa obtii respunsuri la intrebarile tale trebuie sa pui intrebari clare, nu generale. Ca de exemplu in ce limbaj de programare ar tebui sa programez microcontrolere la nivel de incepator. Si raspunsul ar fi: daca cunosti bine diferentele dintre arhitecturile microcontrollerelor atuci poti s-o faci in limbaj de asamblare, daca nu atunci o faci intr-un limbaj de nivel inalt Basic sau C.

Atentie sunt multi care vor si pot sa te ajute dar nu abuza de asta cu inrebari de genul: "Asa ca imi puteti spune niste notiuni de programare". Risti sa te ignore lumea.

Pune intrebari inteligente la obiect la care se poate raspunde in cateva randuri, ca nu are nimeni timp sa tina cursuri de programare online.

poate ar fi bine sa lasi microcontrolerele deocamdata si sa citesti un pic despre programare generala, ce e un asamblor, un linker, un interpretor, un compilator, si dupa aia treci la microcontrolere altfel o sa fie o varza.

R.

 

Raspunsul la intrebarea de mai sus e DA, asta face un programator programeaza memoria de program (si da e reprogamabila la cele cu flash) su nu numai, dar in mare asta face.

R.

Link spre post
Distribuie pe alte site-uri

Eu asta ma chinui sa va spun. nu gasesc materiale. Mi-a spus dl. edy sa citesc datasheet-urile microcontrollerelor. am incercat, dar nu am inteles mare lucru. nu gasesc ceva care sa explice micocontrollerele la nivel de inceptor, cu toate detaliile, registii sa descrie tot s.a.m.d.

Link spre post
Distribuie pe alte site-uri

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
  • Navigare recentă   0 membri

    Nici un utilizator înregistrat nu vede această pagină.




×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock