Sari la conținut

programare ATtiny


MihailSer

Postări Recomandate

Salutare, mentionez ca sunt incepator. Vreau sa programez un ATtinu15 si nush exact pasii. Am codul scris in assembler in visual Basic. Ce trebuie sa fac apoi cu acest cod ? folosesc visual studio am vazut ca e pentru avr, ce face acest program ?

Link spre comentariu
Distribuie pe alte site-uri

Mihai,

 

judecand dupa intrebarile care le pui, e clar ca vrei sa inveti lucruri noi, si apreciez insistenta (si faptul ca esti politicos) dar nu cred ca vei invata eficient doar punand intrebari pe forumuri.

Iti recomand sa citesti o carte sau mai bine sa te inscrii la un curs (sau sa frecventezi un club, daca exista) pentru ca in domeniul asta nu poti "taia curbele" ("cut the corners" in engleza) trebuie sa inveti tot si in ordinea buna.

Daca vrei sa programezi microcontollere ai nevoie de doua lucruri, sa intelegi cum functioneaza (asta are legatura cu electronica) si sa inveti un pic de programare (asta are legatura cu calculatoarele) - dar trebuie amandoua.

de evemplu nu vei intelege cum functioneaza timerele, daca nu stii cum functioneaza numaratorele sincrone, si nu vei putea programa timerele daca nu stii cum funtioneaza rutinele de intrare iesire, intreruperi, la nivel de programare.

 

revenind la intrebarea ta:

banuiesc ca ai codul scris in asembler (ma indoiesc ca ar fi visual basic,dar e posibil sa vorbim de lucruri diferite), creezi un "proiect" in AVR Studio, alegi microcontolerul, frecventa de clock, etc. si asociezi codul sursa (programul in asm) cu proiectul nou creat. Dupa asta, il complilezi (in cazul tau se cheama asamblezi) si obtii un fisier de tip hex, sau elf (depinde ce ai ales in setarile proiectului).

Fisierul asta .hex (sau .elf) il programezi in flash-ul de program al microcontroler-ului. (cu un cablu special direct pe placa unde e lipit, sau cu o placa pe care o folosesti pentru programare)

 

RR

 

PS - scapa de "nush" ala ca face praf toata impresia buna data de postarile scrise corect, si-mi taie cheful sa-ti raspund in viitor.

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

 

Pto sa-mi explici te rog codul .asm, asa pe secvente ce fac fiecare ca nu il inteleg. De exemplu :

; Program Code

 

.cseg

; Interrupt Vectors

rjmp reset ;Reset

rjmp 0 ;INT0

rjmp 0 ;PIN CHANGE

rjmp 0 ;TC1.CM

rjmp 0 ;TC1.OVF

rjmp 0 ;TC0.OVF

rjmp 0 ;EEPROM

rjmp 0 ;ANALOG COMP

reti ;ADC

Link spre comentariu
Distribuie pe alte site-uri

 

 

Am citit si ai maxima dreptate, numai ca sunt presat de timp pentru a explica un cod si credeam ca pot gasi ajutorul momentan la aceasta chestiune aici, e o solutie de moment, apoi ... burta pe carte ca nu se mai poate

Link spre comentariu
Distribuie pe alte site-uri

ok, hai sa incerc.

 

portiunea aia de cod nu face mare lucru, doar defineste niste adrese unde sa sara executia in cazul diferitelor intreruperi generate de hardware. Se numeste si tabela de vectori de intrerupere.

 

.cseg ii spune asamblorului ca ce urmeaza va fi asamblat in sectiunea code (program) - mai exista si sectiuni de date, sau text sau altele.

 

rjump xxxx (relative jump xxxx) inseamna sari la adresa xxxx

tot ce e dupa ";" e doar un cometariu.

 

de exemplu:

 

rjmp reset ;Reset - va seta unde sa sara executia la un hardware reset. (valoarea adresei "reset" se defineste prin programarea microcontrolerului la nivel de fuse bits)

 

restul

rjump 0; - definesc unde sa sara in cazul unei intreruperi hardware, in cazul tau nevand rutine de intrerupere setate sau la adresa zero (default) - deci in cazul cand ai activat din greseala o intrerupere hardware va sari la adresa 0.

daca ai aveai o rutina care sa trateze intreruperea respectiva puneai numele (care se convertea automat in adresa la asamblare) rutinei de intrerupere.

 

reti (return from interrupt) reface contextul dupa o intrerupere luind adresa de intoracere de pe stiva (practic incarca PC, adica program counterul, cu ultima valoare de pe stiva, intorcandu-se acolo de unde s-a intrerupt executia)

 

RR

 

PS - ce am scris mai sus probabil o sa-ti dovedeasca ca nu poti intelege mare lucru sarind pasi esentiali, si te va face sa te pui pe invatat serios sau sa renunti ca nu e pentru tine, nu depinde decat de tine.

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

ok, hai sa incerc.

Cu sigurnta ma ambitioneaza. Multumesc frumos, explicatiile date de tine sunt foarte detaliate si chiar ma ajuta. Dupa secventa aia, este :

; Initialization

 

reset:

clr _0 ;Zero register

 

ldiw Z, 0x03ff ;Initialize OSCCAL.

lpm ;(The chip unique value must be given.)

out OSCCAL, r0 ;/

 

outi ACSR, 0x80 ;Disable Ana-comp

outi MCUCR,0b00101000 ;Enable ADC-NC mode

 

sbi DDRB, 0 ;Port B Ź?????

 

sei

 

ldiw Z, m_start*2

rcall dp_str

Link spre comentariu
Distribuie pe alte site-uri

Daca te intereseaza programarea AVR in asembler poti sa citesti in cartea lui John Morton o poti gasit pe net in engleza sau rusa (cel putin asa stiu ca exista). Eu din ea am inceput sa invat,dar din lipsa de timp nu mai continui.

Sint prezentate cele mai simple lucrui si exemple de program. Pentru inscriere cod in microcontroler folosesc Code Vision AVR si programator AVR 910. Pentru simulare Proteus 7.

asa se numeste cartea: AVR an introductory course J.Morton 2002

Link spre comentariu
Distribuie pe alte site-uri

Pentru inscriere cod in microcontroler

din cate stiu eu "Code Vision AVR" e compliator de C nu prea are mare legatura cu inscrierea

si trebuie sa ai licenta (adica e pe bani) - am lucrat cu el in trecut, am fost foarte multumit de el, si consider ca a meritat banii.

RR

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Il folosesc doar petnru inscrierea programei cu AVR 910 fiindca in AVR studio nu este posibil cu el.

eu zic ca e posibil (crezi ca-si mai bateau aia de la Atmel capul sa publice schema AVR910 si sa nu fie compatibila cu AVR Studio?)

 

 

Using AVR-UISP with AVR Studio 4

To use AVR-UISP with AVR Studio the AVR-UISP must have a com port within com1-com4. Otherwise the AVR Studio does not find the AVR910 Programmer.

If you want to change the com port number, use your system hardware manager.

 

Supply power (2.5V-5.5V) to AVR-UISP device from your target device/board over ISP cable. Plug AVR-UISP device into PC USB port.

Select ?Tools->AVR Prog? from the AVR Studio main menu.

If the AVR-UISP device is detected correctly the window ?AVRProg? opens in the AVR Studio.

Browse Hex-File, select destination device and use Flash ?Program? to flash your AVR device.

 

http://www.siphec.com/HOWTO/AVR%20USB%20ISP/index.html

RR

Link spre comentariu
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