Sari la conținut
ELFORUM - Forumul electronistilor

mikropascal piece of crap: need HELP


petre_s

Postări Recomandate

m-am apucat sa invat assambler pentru PIC, si am dat de mikropascal care mi s-a parut suuuper simplu si comod de utilizat. e bun de ceva, ma apuc de el? isi pierd programele din performanta cu limbajul asta fata de assambler? sunt chestii care se pot face in assambler si nu in mikro pascal? Mentionez ca limbaj pascal stiu foarte bine, si chiar C

Link spre comentariu
  • Răspunsuri 31
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • petre_s

    15

  • bogdanm

    3

  • XAN77

    3

  • MihaiStoica

    2

Top autori în acest subiect

Daca tu vrei performanta pe PIC ... :yawinkle: Nu cred ca pui problema cum trebuie. Daca vrei performanta pe ceva gen PIC programezi in assembler, sau (MULT mai bine) te orientezi spre alte microcontrollere.

Link spre comentariu

bun... am gasit softul de programare (raman la mikropascal). Acum incepe problema mare: vreau sa fac un dispozitiv care sa aiba un ceas 24h cu data iar la niste ore stabilite sa comande un releu. sunt 14 ore pe zi la care trebuie sa actioneze, iar in weekend nu trebuie sa functioneze. ceasul trebuie sa aiba o prezicie destul de buna (sa zicem maxim un min la 6 luni). ma gandeam sa folosesc un ceas exterior care sa interfateze cu pic-ul(cred ca un 16F876 este si prea mult).ce ceas sa folosesc si cum il interfatez cu pic-ul :prayer:

Link spre comentariu

eu am folosit cu succes DS1307 la care precizia e data de quartzul de 32.768khz ce il pui, partea buna e ca se conecteaza la acel IC baterie de 3V pentru backup in caz de pana de curent. Interfatarea se face pe i2c, ca asa comunica DS1307 cu exteriorul. Referitor la mikropascal fa un test simplu care lam facut eu la mikrobasic si ma dezumflat rapid : fa un program cu un delay 20 ms de exemplu, compileazal vezi cate instructiuni de asm iti face, apoi mai pune alt delay de 25 ms sa zicem si recompileaza. Prostu de mikrobasic dubleaza efectiv programul in loc ca incepand de la a 2-a instructiune de delay sa bage doar cateva instructiuni asm apeland o rutina interna de delay folosita deja la primul delay din program, deci management fff defectuos al memoriei program.

Link spre comentariu

aha, tocmai gasii ceva despre RTC in exemplele de la mikropascal, este cu PCF8583. sa citesc ceva si despre i2c si ma apuc de treaba dintre cele 2 ceasuri care ar fi mai bun, ca preturile sunt cam aceleasi?tnxapropo xan77, mie mi se pare foarte corect ce face mikrobasic in aceasta situatie, cred ca managemmentul memoriei este defectuas din cauza ta care puteai sa pui un singur delay mai mare si treaba se simplifica. programatorul trebuie sa faca tot posibilul sa nu iroseasca memoria (mai ales in compilatoarele astea de pascal, basic,etc.) nu mai suntem pe core duo si 1GB ram :d

Link spre comentariu

cred ca teai grabit sa scrii :smt003 , eu nu ma refer la 2 delayuri consecutive ca evident ca pui doar 1, mikrobasicu ala dubleaza memoria folosita pentru fiecare delay folosit in program si sa numi zici ca tu nu folosesti mai mult de 1 delay intrun program, este o instructiune banala care o folosesti de mai multe ori cand cu intarzieri in ms cand in s sau us etc. Compilatorul basic, pascal etc trebe sa fie cat de cat inteligent si sa foloseasca un sistem de rutine, macrouri etc nu sami compileze de feiecare data aceeasi rutina pentru instructiuni care leam mai folosit .

Link spre comentariu

acum vreau sa pun si tastatura :d nu ma mai complic cu functiile predefinite pentru ca am nevoie de doar 5 taste si portul A este liber. ma gandeam sa pun o rezistenta de la pin la + si cand apas tasta sa puna pinul la masa. acum zic sa nu-mi faca probleme contactul mecanic al tastei si softul sa interpreteze o apsare multipla. ceva recomandari hard/soft, (eu nu am mai lucrat cu asa ceva)?si inca ceva(nu radeti:)) avem un port de intrare, aplic semnal logic 1(5V), ca bitul sa isi schimbe valoarea(in 0) trebuie sa pun pinul la masa sau doar il las liber?

Link spre comentariu
Vizitator johnny

XAN77 cred ca shi tu te grabesti un pic , atunci cind pui la zid Mikrobasic-ul. Potzi sa rezolvi usor problema atunci cind trebuie sa folosesti de mai multe ori o intirziere cu aceeasi valoare in felul urmator:Program delaysub procedure timp1 delay_ms (20) end subMain: timp1 timp1 timp1 timp1 timp1 timp1 timp1 timp1 timp1 timp1 end.La compilare vei avea in assembler instructiunea Call in loc de carnatu' aladin libraria delay-ului. Shi eu lucrez cu Mikrobasic si imi pare ok. Cu putzina atentzie la detalii faci destule chestii cu el,are multe library-uri care iti usureaza munca ,este simplu de intzeles, free pana la 2K de cod; in concluzie un program foarte bun pt un incepator. Daca vrei eficienta maxima in spatziu de memorie minim >> assembler rulez :supz:

Link spre comentariu

acum ma uitai in help la mikropascal si scrie clar ca delay este o rutina inline

This is an ?inline? routine; code is generated in the place of the call

deci... explicatia mariri memoriei de program. de ce? probabil ca se construiesc mai multe bucle de 256 de pasi si la fiecare delay, se construieste un "bloc" de bucle dupa valoarea stabilita de parametru.intr-adevar, metoda lui johny va merge, insa vei folosi aceeasi valoare de delay (nu poti pune parametru la procedura si sa-l transmiti la delay, pt ca parametrul la delay tre sa fie constanta :d)dar nu ma uitati si pe mine :) :

acum vreau sa pun si tastatura :d nu ma mai complic cu functiile predefinite pentru ca am nevoie de doar 5 taste si portul A este liber. ma gandeam sa pun o rezistenta de la pin la + si cand apas tasta sa puna pinul la masa. acum zic sa nu-mi faca probleme contactul mecanic al tastei si softul sa interpreteze o apsare multipla. ceva recomandari hard/soft, (eu nu am mai lucrat cu asa ceva)?si inca ceva(nu radeti:)) avem un port de intrare, aplic semnal logic 1(5V), ca bitul sa isi schimbe valoarea(in 0) trebuie sa pun pinul la masa sau doar il las liber?

Link spre comentariu

XAN77 cred ca shi tu te grabesti un pic , atunci cind pui la zid Mikrobasic-ul

ba nu ma grabesc deloc, am testat mikrobasicu si nu ca sa dovedesc ca e prost, vroiam chiar sal folosesc intrucat are varianta si de AVR si asta e un mare avantaj dar, nu a trecut testul. Eu ma refer evident la delayuri cu valori diferite si stiu foarte bine cel puneam pe mikrobasic sa faca, am comparat aceleasi instructiuni compilate si cu Proton Basic, care este net superior, neprezentand acelasi defect, compileaza doar odata vreo 50 de instructiuni cat o avea rutina de delay iar apoi pentru fiecare alt delay indiferent de valoarea delayului pe 8 sau 16 biti mai adauga cate 4 instructiuni de asm pentru fiecare delay, asta inseamna management bun de memorie. Miar fi placut sa pot folosi mikrobasicul pentru ca am cam trecut pe avr eu si era misto sa folosesti acelasi limbaj la ambele platforme, dar asta e. Cat despre artificii soft de care zici, hmm, pai deaia folosesc Basic, ca sa fie usor si sa nu fac eu rutine si apelarea lor ca in cazu asta mai bine bag un include macro.txt in fata simi fac o lista de macrouri (o am deja facuta ca am luato de jos) si nu prea mai am nevoie de Basic . In materie de PIC Proton e cel mai bun, parerea mea iar la AVR BascomAVR .
Link spre comentariu

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



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări