free_fiber Postat Iunie 14, 2007 Partajează Postat Iunie 14, 2007 Salutare. As vrea sa invat sa programez picuri folosind Mikrobasic (pentru mine pare mai prietenos tinand cont ca mai stiu C/C++, Pascal, PHP iar ASM deloc). Am tot cautat tutoriale pe net dar nu am gasit nimic concret. Spuneti-mi si mie va rog ce inseamna liniile urmatoare: TRISB = 0 ' Configure pins of PORTB as output PORTB = %11111111 ' Turn ON diodes on PORTB Observ eu acolo descrierea liniei dar... tot nu inteleg cum se folosesc instructiunile astea. Multumesc P.S. Am inceput deja sa citesc ce se recomanda aici: http://www.elforum.info/viewtopic.php?t=21454 Link spre comentariu
Abram Burel Postat Iunie 14, 2007 Partajează Postat Iunie 14, 2007 Pai, mai intai ia foaia de catalog a PIC-ului si buchiseste-o bine.Chiar daca nu programezi in ASM, tot va trebui sa cunosti ceva despre "registrii" pe care acesta ii are si pe care va trebui sa-i "manipulezi" prin program.De exemplu, TRISB eeste registrul care controleaza ce directie este pe fiecare pin din PORTB, respectiv se seteaza bitul corespondent (ca pozitie) pe 1 daca vrem sa fie intrare si pe 0 daca vrem sa fie iesire. In cazul tau, toti vor fi iesiri.Odata stabilita asta, ca sa scoti ceva pe portul B, trebuie sa scrii in el ceea ce vrei. In cazul tau, ca sa aprinzi ledurile trebuie sa scrii 1 in toti bitii adica 0FFH (hex) sau %11111111 (binar).Ca fapt divers, echivalentul in ASM este:; echivalent TRISB=0CLRF TRISB; echivalent PORTB=%11111111MOVLW 0FFHMOVWF PORTBNu e chiar asa de complicat, nu? Link spre comentariu
free_fiber Postat Iunie 14, 2007 Autor Partajează Postat Iunie 14, 2007 deci trisb seteaza ca intrare sau iesire orice pin rb0-rb7, nu?sa inteleg ca trisb=0 ii face pe toti iesiri?dar daca vreau doar unu la fie iesire si ceilalti intrari? scriu: trisb=01111111 ?dar daca vreau ca rb6 si rb7 la fie iesiri si ceilalti intrari? scriu: trisb=11111100 ?am inteles bine? cifra1 seteaza rb0, cifra2 seteaza rb1 .... cifra 8 seteaza rb7?la fel si la portb? daca vreau curent pe rb0 scriu: portb= %10000000 ?daca vreau curent pe rb3 si rb4 scriu: portb= %00011000 ? Link spre comentariu
Abram Burel Postat Iunie 14, 2007 Partajează Postat Iunie 14, 2007 RB0 e cel mai din dreapta (LSB - Least Significant Bit)RB7 e cel mai din stanga (MSB - Most Significant Bit) Link spre comentariu
free_fiber Postat Iunie 14, 2007 Autor Partajează Postat Iunie 14, 2007 Deci am inteles bine despre instructiunile alea?"am inteles bine? cifra1 seteaza rb0, cifra2 seteaza rb1 .... cifra 8 seteaza rb7? " Link spre comentariu
Abram Burel Postat Iunie 14, 2007 Partajează Postat Iunie 14, 2007 Spune care e cifra 1 si iti spun daca e bine Link spre comentariu
free_fiber Postat Iunie 15, 2007 Autor Partajează Postat Iunie 15, 2007 salut. m-am mai documentat intre timp si am aflat ca in mikrobasic e pe invers trisb:pentru portul rb0 scriu trisb=00000001 . cam asa am inteles: primul e ultimul.LE: Am facut si eu un programel in mikrobasic:program testaremain: trisb=0 portb=%11111111end.Teoretic trebuie sa aprinda ledu pus pe oricare din rb-uri. Practic nu se intampla nimic... :(Programul a fost compilat tot cu mikrobasic, mi-a facut un fisier .hex, l-am scris cu icprog, l-am verificat (e scris corect) dar ledu nu se aprinde.De ce? Link spre comentariu
78ATI Postat Iunie 15, 2007 Partajează Postat Iunie 15, 2007 @free_fiber. Daca esti la inceput de drum, iti recomand din suflet sa inveti PicBasic. Am avut probleme cu Mikrobasic (in situatia ta fiind) la eleborarea unor proiecte ceva mai mari, compilarea este defectuasa, programul rezultat fiind mai mare decat ar trebuii. Este un sfat pe care l-am primit de la un bun amic si coleg de forum! Acum il urmez. Succes! Link spre comentariu
free_fiber Postat Iunie 15, 2007 Autor Partajează Postat Iunie 15, 2007 PicBasic foloseste (ca si mikrobasic) un limbaj prietenos care seamana cat de cat cu C/C++ ?Am scris putin mai sus un programel de care ziceam ca nu merge.Mi s-a spus ca trebuie sa fac un ciclu while ca sa ruleze continuu.Problema de care m-am lovit este ca nici porgramul de mai jos nu merge:program Led_blinkingmain: TRISB = 0 PORTB = %11111111 while true PORTB = not PORTB delay_ms(1000) wendend.Programul este un exemplu dat de mikrobasic, deci nu e facut de mine, era deja facut. Link spre comentariu
78ATI Postat Iunie 15, 2007 Partajează Postat Iunie 15, 2007 Este asemanator, (grafica diferita) insa structura este asemanatoare tuturor programelor basic. Trebuie un pic de timp de adaptare, putin citit helpul sau tutorial...si va merge la fel de bine ca Mikrobasic la programat. Marele castig este programul rezultat in urma compilarii. Eu nu sunt profesionist in PIC, am cerut ajutorul de cate ori am avut nevoie, insa acum incerc sa refac totul in PicBasic, din cauzele enuntate mai sus Link spre comentariu
free_fiber Postat Iunie 15, 2007 Autor Partajează Postat Iunie 15, 2007 PicBasic asta nu are si o versiune free? Ca vad ca e 99$ :smt086 Link spre comentariu
free_fiber Postat Iunie 20, 2007 Autor Partajează Postat Iunie 20, 2007 Am reusit sa fac cateva programe simple in mikrobasic :)Acum vreau sa fac un programel care sa masoare numarul de impulsuri primit pe pinul timer.Cum fac asta?Stiu doar ca pornesc timerul, il opresc dupa o secunda si citesc valoarea lui si gata...Cum fac asta mai exact?Care sunt instructiunile? Link spre comentariu
TECH_FUN Postat Iunie 27, 2007 Partajează Postat Iunie 27, 2007 Setezi bitul 5 al registrului option, bitul TOCS, astfel folosesti tmr0 ca si contor cu impulsuri externe la pinul RA4/TOCKI. Apoi ii zici la bitul 4 T0SE(source edge) daca vrei sa citeasca frontul crescator sau descrescator(1 pt front crescator si 0 pt front descrescator). Si tot in reg OPTION ai bitii de setare ai prescalerului PS0, PS1, PS2; ii setezi la cat vrei tu ca sa numere contorul.Din pacate nu te pot ajuta cu instructiunile in mikrobasic :smt009 Link spre comentariu
free_fiber Postat August 13, 2007 Autor Partajează Postat August 13, 2007 Chiar nu e nimeni sa ma ajute sa fac programelul? Link spre comentariu
bogdanm Postat August 14, 2007 Partajează Postat August 14, 2007 Chiar nu e nimeni sa ma ajute sa fac programelul?Sansele sa-ti dea cineva mura-n gura sunt minime. Citeste foaia de catalog de la PIC, instructiunile de la MikroBasic, si dupa aia ia netu la mana, geme de tutoriale si alte d-astea. Daca totusi vrei mura-n gura spune si-ti mut thread-ul la "ElectroJOB". Daca nu, te rog ca pe viitor sa te abtii de la posturi gen "chiar nu e nimeni sa ma ajute". Multumesc. 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