Liviu M Postat Mai 28, 2015 Partajează Postat Mai 28, 2015 Da, exact asa. Bitii 11..8 ii "separi" cu operatii pe bit: dim val12bit as word 'valoare de incarcat in dacdim comanda as byte 'comanda (4 biti)dim array8bit(2) as byte 'variabilele de trimisdim temp1, temp2 as byte 'ajuta la calculecomanda = &b1100 'nu stiu daca exista, e pe post de exemplu val12bit = &b1000_00000000temp1 = SHIFT val12bit, right, 8 'muti val16bit la dreapta cu 8 biti => temp1=&b1000temp2 = SHIFT comanda, left, 4 'temp2=&b11000000array8bit(0) = temp2 + (temp1 AND &HF) '=> &b11001000 Sper ca n-am scris prea multe prostii, sintaxa de Bascom nu mi-e prea cunoscuta. Link spre comentariu
mariuss_suciu Postat Mai 29, 2015 Partajează Postat Mai 29, 2015 Multumesc Liviu M. Am tot recitit de `nspe ori ce mi-ai scris, am rascolit prin helpul de bascom, si am scris un cod functional, face exact ce imi doream eu. Pana una alta am si priceput in totalitate cum functioneaza, si cred ca asta e cel mai mare castig al meu Imi cer scuze pentru ordonarea haotica din cod, insa la ora asta nu mai am rabdare sa il cosmetizez: dim val12bit as word 'valoare de incarcat in dacdim comanda as byte 'comanda (4 biti)dim array8bit(2) as byte 'variabilele de trimisDim Temp1 As Byte 'ajuta la calculeDim Temp2 As ByteDim Array(2) As ByteDim Val13bit As Word 'acelasi lucru cu val12bitComanda = &B01000000 'setez normal mode pt DACVal12bit = &B011100010010Val13bit = Val12bitDoComanda = Comanda And &HF0 'extrag doar bitii 7-4, 3-0 nu conteazaLocate 1 , 1Lcd Bin(comanda)Wait 2Shift Val12bit , Right , 8 'bitii 11-8 ii mut la dreapta cu 8 si devin bitii 3-0.Temp2 = Val12bitLocate 2 , 1Lcd Bin(temp2)Wait 2Array(2) = Comanda + Temp2 'pun bitii 7-4 de la comanda si bitii 3-0 de la val12bit shiftataLocate 3 , 1Lcd Bin(array(2)) ' afisez noua combinatie 7-0Wait 2Val13bit = Val13bit And &HFF 'extrag bitii 7-0 din variabila de 16 biti, bitii 15-8 devin 0Array(1) = Val13bitLocate 3 , 10Lcd Bin(array(1))Spiout Array(2) , 2 'trimit la DAC ceea ce-si doreste: o combinatie valida :)Do 'aici se opreste secventa (intra in bucla infinita)LoopLoop Maine am sa cosmetizez secventa, scot ce nu am nevoie (afisarile pe lcd) si o adaug la proiectul pe care il visez. Mersi inca o data de ajutor. Link spre comentariu
Liviu M Postat Mai 30, 2015 Partajează Postat Mai 30, 2015 (editat) Felicitari!Ai testat codul si cu DAC-ul? Recunoaste comenzile asa cum le dai acum?Nu de alta, dar nu scrie nicaieri ce se intmpla cu semnalul CS intre cei doi octeti. Editat Mai 30, 2015 de Liviu M Link spre comentariu
mariuss_suciu Postat Mai 30, 2015 Partajează Postat Mai 30, 2015 (editat) Salut, Da, am testat pe DAC si Chip Selectul sta in 0 pana se transmit cei doi bytes. Mi-am facut sa reglez Vout la DAC dintr-un encoder, iar mai jos in poze se vede cum ma plimb de la 0 la 5V si invers..... Apropo, Vout il citesc si cu ADC-ul pe 10biti din uC, si tot la al 4-lea bit incrementat pe DAC, se incrementeaza cu 1 si pe ADC....exact cum ar trebui. Editat Mai 30, 2015 de mariuss_suciu Link spre comentariu
diaconuliviu Postat Iunie 13, 2015 Partajează Postat Iunie 13, 2015 Recunosc ca pentru mine engleza are inca multe taine, ca atare si intelesul datasheetului uneori e greoi. Am tot intrat prin DS lui Atmega 162. Ma intereseaza daca vreo setare de lockbit previne scrierea de catre bootloader sau de flash in eeprom. Asta fara a afecta rescrierea ISP ulterioara. Ce am observat, ca updateurile de flash sint impiedicate de o setare C8h (11001000), adica doar BLB02 neprogramat. Probabil ar fi acelasi lucru cu 08h, 00001000, pt ca primele doua pozitii nu sint folosite la Atmega162. Link spre comentariu
stone100 Postat Octombrie 1, 2015 Partajează Postat Octombrie 1, 2015 intrebare , se poate scoate codul dintr-un Atmega64 daca acesta este lipit deja pe placa ? mi s-a rupt pcb-ul si acum mi-e frica deoarece nu sunt sigur ca vor fi lipituri stabile corecte si fara sa ard uC-ul Link spre comentariu
keenox Postat Octombrie 1, 2015 Partajează Postat Octombrie 1, 2015 @stone100: Nu poti scoate codul. Poti downloada ce e pe flash (cod compilat), asta daca nu e lockat. De ce nu il dezlipesti si il pui pe alta placa? Link spre comentariu
UDAR Postat Octombrie 1, 2015 Partajează Postat Octombrie 1, 2015 Da , și eu am vrut să reacționez dar am rămas lockat ! Biata limbă română .... Mă rog , nici cu franceza din ”avatar” nu mi-e rușine . Link spre comentariu
stone100 Postat Octombrie 2, 2015 Partajează Postat Octombrie 2, 2015 si daca e blocat nu exista ceva sa il debloceze , nici macar un programator bun ? Link spre comentariu
Liviu M Postat Octombrie 2, 2015 Partajează Postat Octombrie 2, 2015 Ba da, de deblocat se poate, dar pierzi datele din el (adica n-ai rezolvat problema). Desi (din ce am auzit/citit mai nou) teoretic poti citi datele din el, echipamentele si cunostintele necesare fac imposibil acest lucru acasa, pe genunchi. Link spre comentariu
Vizitator Tarola Alexandru Postat Octombrie 8, 2015 Partajează Postat Octombrie 8, 2015 (editat) Va salut! Se da urmatorul integrat, ce contine controlerul atmega48pa, doua motoare servo si firele aferente (alimentare, alimentare motor si antena) recuperat de la un planor. http://imgur.com/a/kGIxf Citesc de vreo 2 zile si am ramas la aceste 3 pagini cu documentia aferenta: http://www.atmel.com/Images/8161s.pdf http://www.recursion.jp/prose/avrcdc/cdc-232.html#schematic http://tinkerlog.com/2009/06/18/microcontroller-cheat-sheet/ Doresc sa-l programez si eventual daca se poate sa-l controlez manual din pc. Problema este ca, nu stiu unde sa ma "leg", pentru comunicatia dintre el si com-ul pc-ului. Se poate sau trec la altceva? Multumesc anticipat. Editat Octombrie 8, 2015 de Tarola Alexandru Link spre comentariu
nico_2010 Postat Octombrie 8, 2015 Partajează Postat Octombrie 8, 2015 Nu vei putea programa microcontroller-ul doar conectandu-l prin pinii Rx-Tx la COM-ul PC-ului (conexiunea este valabila numai pentru comunicatie seriala sau, daca chipul are bootloader, si pentru incarcarea unui firmware). Daca doresti sa inscrii un nou firmware in microcontroller vei avea nevoie de un programator (gasesti pe forum sau iti construiesti). Link spre comentariu
mariuss_suciu Postat Octombrie 8, 2015 Partajează Postat Octombrie 8, 2015 (editat) Salutare, Am inceput sa lucrez la o sursa la care voi folosi doua DAC-uri pentru control U si I, dar am ajuns intr-un punct in care m-am "blocat". Pentru reglajul tensiunii si curentului, voi folosi un Encoder, insa ca sa nu "bobinez" de la 0 la 4096 din degete, m-am folosit de butonul de pe Encoder pentru a "activa" reglajul de tip fine = 1x si coarse = 25x. Aceasta parte de cod functioneaza minunat (posturile #784, #782, etc), insa am ramas fara pini liberi la uC si mai am nevoie de un buton din care sa trec de pe reglajul tensiunii pe reglajul curentului, iar acum ma gandeam ce solutie ar fi ca in momentul in care apas scurt pe butonul de pe Encoder sa mi se activeze reglajul fine/coarse, iar daca tin apasat sa zic 2 secunde, sa treaca din reglaj tensiune in reglaj curent si invers. Pentru aceasta trecere voi folosi o variabila ce poate lua doua valori: 0 = reglaj tensiune, 1 = reglaj curent. Dati-mi va rog un punct de plecare pentru aceasta problema. Multumesc, Marius. edit: Am uitat poza. Butonul de pe Encoder este conectat la INT0 pe Atmega8 Editat Octombrie 8, 2015 de mariuss_suciu Link spre comentariu
spark Postat Octombrie 12, 2015 Partajează Postat Octombrie 12, 2015 Am vrut sa programez un mega328 cu usbasp si softul AVRDUDDES si imi da urmatoarea eroare : avrdude.exe: set SCK frequency to 1500000 Hzavrdude.exe: error: programm enable: target doesn't answer. 1avrdude.exe: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check.avrdude.exe done. Thank you. am instalat driverul corect pentru usbasp (windows-ul il vede) am cautat pe net si am gasit sute de asfel de erori care este cel mai prietenos soft care lucreaza mai bine cu programatorul usbasp am incercat mai multe programe si la toate da aceeasi eroare nu am mai programat pina acum mc. atmega multumiri cu anticipatie 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