adyyo Postat Iunie 27, 2012 Autor Partajează Postat Iunie 27, 2012 Tui mama ei de deplasare ca mai aveam oleaca si aruncam matricea asta pe geam Pana la urma am facut deplasarea stanga si deplasarea dreapta cu rotire. Mi-a luat ceva mai mult sa ma dumiresc ce se pierde si ce se salveaza pentru ca matricea mea este cu susul in jos Am folosit pana la urma metoda lui Liviu deoarece in metoda data de George, de exemplu daca aveam "A" incarcat in buffer, acesta se deplasa la stanga pana disparea tot abia dupa aceea incepea sa apara prin dreapta. Folosind metoda data de Liviu, "A" se deplaseaza la stanga si atunci cand dispare un rand in stanga, la urmatoarea deplasare apare in dreapta. L.E. uitasem de cod void rotire_stanga(int nr_pixeli_rotiti) // rotirea afisajului la stanga cu un nr de n pixeli (n=nr_pixeli_rotiti){ char j, n, bit_salvat_s; for (n = 1 ; n <= nr_pixeli_rotiti ; n++) { for (j = 0 ; j < COL_MAX ; j++) { if (display_buffer[j] & 0x80) // Daca MSB=1 bit_salvat_s = 1; // Salvez MSB else bit_salvat_s = 0; // Salvez MSB display_buffer[j] <<= 1; // Deplasare spre stanga if (bit_salvat_s == 1) // Daca bit_salvat = 1 display_buffer[j] |= 0x01; // Scrie 1 in LSB } }}void rotire_dreapta(int nr_pixeli_rotiti) // rotirea afisajului la dreapta cu un nr de n pixeli (n=nr_pixeli_rotiti){ char x, m, bit_salvat_d; for (m = 1 ; m <= nr_pixeli_rotiti ; m++) { for (x = 0 ; x < COL_MAX ; x++) { if (display_buffer[x] & 0x01) // Daca LSB = 1 bit_salvat_d = 1; // Salvez LSB else bit_salvat_d = 0; // Salvez LSB display_buffer[x] >>= 1; // Deplasare spre dreapta if (bit_salvat_d == 1) // Daca bit salvat = 1 display_buffer[x] |= 0x80; // Scrie 1 in MSB } }} Link spre comentariu
Liviu M Postat Iunie 27, 2012 Partajează Postat Iunie 27, 2012 Ciudat, cele 2 variante ar trebui sa fie echivalente (in cazul variabilelor char, asa cum ai folosit tu).LE M-am uitat in asm-ul generat de ccs4 pentru operatiile de deplasare (stanga) si genereaza codul corect (RLA.B). Si ca sa aflu ce inseamna RLA.B, m-am uitat prin manuale (==Rotate Left Arithmetically), ocazie cu care am aflat ca la deplasarea stanga MSB e salvat in C(arry), la fel cum la deplasarea la dreapta LSB e salvat si el in C. Link spre comentariu
adyyo Postat Iulie 20, 2012 Autor Partajează Postat Iulie 20, 2012 Am revenit, sper ca v-a fost dor de mine Am terminat cu licenta, pana in toamna am timp sa ma apuc mai serios de MCU.Deci unde ramasesem...merge derularea stanga, derularea dreapta. Mai departe ar trebui sa inteleg cum folosesc printf pentru a afisa pe matrice cuvintele. Ce stiu este ce am facut in primul an de facultate cand foloseam printf pentru a afisa text pe monitor in C. Adica printf("Hello"); Link spre comentariu
Vizitator Postat Iulie 20, 2012 Partajează Postat Iulie 20, 2012 Aici nu merge direct cu printf. E o funcţie prea complicată, rar se foloseşte printf cu MCU-uri. Chiar şi folosirea unor primitive ale ei ar fi o treabă destul de întortocheată. E mai simplu şi mult mai util (în scop didactic) să construieşti singur funcţii din ce în ce mai evoluate. Recomandarea mea ar fi să le faci întâi pe cele de care am vorbit. Apoi, folosindu-te de ele, construieşti o funcţie care afişează un şir de caractere. Între timp, continuă să citeşti un manual de C şi să faci (nu doar să le copiezi) exemplele şi/sau exerciţiile de acolo. Timp de explicaţii nu mai am ca până acum, dar aştept cu interes următoarele tale progrămele. Spor la butonat! Link spre comentariu
yo9hnf Postat Septembrie 2, 2012 Partajează Postat Septembrie 2, 2012 Am dat peste un "Arduino-like IDE" pentru placile de la TI : https://github.com/energia/Energia/wiki Link spre comentariu
Stefan Postat Septembrie 2, 2012 Partajează Postat Septembrie 2, 2012 cred ca la asta te referi http://energia.github.com/Energia/download/ (e cam sarac in unelte) m-am jucat cu launchpad in CCS dar e mai ciudat ca la microcontrolerele pic/avr. pentru a "varsa" programul trebuie apasat Debug ?! poate nu vreu sa fac depanare la program. Nu am inteles cum se descarca un program din MCU pentru salvare in PC. 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