Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
free_fiber

Incepator in Mikrobasic

Recommended Posts

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

Deci am inteles bine despre instructiunile alea?"am inteles bine? cifra1 seteaza rb0, cifra2 seteaza rb1 .... cifra 8 seteaza rb7? "

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

@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!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.