Jump to content


Photo

Lucreaza cineva cu FLOWCODE ?


  • Please log in to reply
641 replies to this topic

#31 OFFLINE   bobinatorul

bobinatorul

    Coffee Service

  • Membri
  • PipPip
  • 204 posts
  • Locatie:BUCURESTI

Posted 04 October 2014 - 05:35 PM

Attached File  initializare.jpg   190.69KB   9 downloads

Attached File  lipsa apa.jpg   295.11KB   6 downloads

 

 

Nu am putut edita postul anterior,sorry.



Cu_reclama

Cu_reclama
  • Membri

#32 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 05 October 2014 - 12:52 PM

ca si incepatorintr-ale flowcode-ului, mentor: bericioiu,

iti pot spune bun venit in familia utilizatorilor de flowcode.

 

intr-alta ordine de idei, rama aceea pentru LCD, de unde ai procurat-o?



#33 OFFLINE   bobinatorul

bobinatorul

    Coffee Service

  • Membri
  • PipPip
  • 204 posts
  • Locatie:BUCURESTI

Posted 05 October 2014 - 07:52 PM

ca si incepatorintr-ale flowcode-ului, mentor: bericioiu,

iti pot spune bun venit in familia utilizatorilor de flowcode.

 

De cand asteptam sa spuna cineva asta :53 .

Acum 3 saptamani mi-era si frica sa alimentez un mcu si azi deja am reusit sa implementez un program in proportie de20%(afisare mesaje,protectii,indexare,contor volumetric,ciclul de preparare) ce simuleaza un automat de cafea.

Spun 20% pentru ca restul ar insemna sisteme de plata,calibrari, layout ,comunicare cu pc si altele.Nici nu imi trebuie mai mult pentru ceea ce vreau sa fac.

Nu stiu Bericioiu cum a facut dar dupa cateva "sedinte" am reusit sa fac lucruri pe care nu credeam ca le voi putea pune in practica vreodata.

 

Rama am "procurat-o" chiar de pe un aparat de cafea.



#34 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 05 October 2014 - 09:07 PM

@Bobinatorul, Doamne ajuta la mai mult.



#35 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 17 October 2014 - 12:24 PM

na ca a re-venit si randul meu sa-mi prind urechile(pentru a nu stiu cata oara) :

vreau sa activez pull-up-urile pe anumiti pini ai unui 16LF1824....pinii 4&5 ai portului C.

am tot incercat variantele:

WPUC = 001100000;

.. adica pe pinii 5&4 ai portului C...

pe urma am citit prin dartasheet ca trebuie sa resetez bitul WPUEN al registrului OPTION si am adaugat asta: option_reg=0000000;

 

ce mickey mouse o avea ca nu imi "ia" in considerare acele linii de cod C....

precizez ca aceste linii pentru activarea pull upului le-am adaugat sub liniile in care Bericioiu m-a invatat sa le adaug pentru setarea oscilatorului...pentru ca 16LF1824 sunt ceva mai pretentioase...



#36 ONLINE   Elison

Elison

    Membru

  • Membri
  • PipPip
  • 171 posts
  • Locatie::

Posted 17 October 2014 - 01:09 PM

Incearca  cu  clear_bit(option_reg , 7);

                      wpuc=0b00110000;


#37 OFFLINE   moduino

moduino

    Membru

  • Membri
  • PipPip
  • 136 posts
  • Locatie:Bucuresti

Posted 17 October 2014 - 01:18 PM

Pentru a activa pull-up-urile interne,stergi bitul 7 al registrului Option. Nu este nevoie neaparat sa "nominalizezi" pe ce pini sa fie active pull-up-urile, In momentul in care un pin este folosit ca iesire, pull-up-ul se dezactiveaza automat pentru acel pin.

In FLowcode, pui in cod C:

clear_bit(option_reg , 7);// Activezi toate pull-ups
wpua = 0x00; //  Calculezi ce pini pe portul A
wpuc = 0X30; //  Calculezi ce pini pe portul C

Eu am pus in hexa, dar poti pune si in binar cum ai pus tu, doar ca wpuc trebuie scris cu litere mici, iar ordinea bitilor este de la dreapta spre stanga, adica ce ai scris tu acolo "001100000" inseamna bitii 5 si 6, nu 4 si 5, pentru bitii 4 si 5, pui 

wpuc = 001100000;

Succes!


Edited by moduino, 17 October 2014 - 01:22 PM.


#38 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 17 October 2014 - 05:38 PM

cred ca am pus mai multe 0-uri aici dar in program sigur am pus bine.

o sa incerc variantele voastre.

multumesc!



#39 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 17 October 2014 - 09:50 PM

LE: am modificat asa cum a exemplificat colegul Elison:

clear_bit(option_reg , 7);
wpuc = 0b00110000;

si merge!

 

cum a exemplificat colegul moduino:

clear_bit(option_reg , 7);
wpuc = 0x30;

si merge!

ambele exemplificari sunt bune!

multumesc amandurora!


Edited by ardiles, 17 October 2014 - 09:55 PM.


#40 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 09 November 2014 - 12:26 PM

off mintea de acum si anii de atunci....

intrebare(nici nu stiu cum sa formulez intrebarea):

daca am o situatie in care am active intreruperile: IOC-portA, TMR0 si TMR1, ele sunt independente intre ele?

adica am vazut ca IOC, atunci cand am modificare pe acel port, imi trateaza si rutina de la TMR0... ele sunt independente? sau asa am eu in creieri, ca sunt legate intre ele?....

 

ideea care este:

am o situatie in care masor o frecventa pe un pin al microcontrolerului si: asa cum am gasit eu exemplele(si altfel nici nu-mi merge mintea sa incerc), in bucla main am doua bucle, una in care imi interogheaza intrarea si sta blocat pana cand apoi cat timp este 1, imediat dupa ea am o bucla in care sta blocat cat timp intrarea este 0, dupa ce intrarea de frecventa a parcurs o perioada completa,1-0, imi adua un counter si merge mai departe;

in paralel, odata la o secunda, TMR0 imi "sunteaza" "linia" in care microcontrolerul trateaza intrarea 1-0-1-0 pentru a-mi masura frecventa, si imi compara variabila numarata pe intrare cu o variabila adunata odata la o secunda... in felul acesta imi masoara frecventa..... si mai departe am adaugat niste decizii care daca numarul(frecventa), este <40 sa aprinda un led, >41 sa stinga led-ul respectiv....

 

de ce intreb de IOC & TMR0, pentru ca atunci cand frecventa este 0, microcontrolerul meu este practiv inactiv, pentru ca sta blocat in bucla main, in mini-bucla in care interogheaza intrarea, daca intrarea de frecventa este 0, sta in acea bucla pana cand apare schimbare(respectiv 1 apoi 0 apoi 1).... cum sa fac sa fac aceasta interogare de intrare frecventa in rutina de tratare
IOC port A, dar sa fie independenta de TMR0? mentionez ca IOC il folosesc la intrarea de la un encoder, dar si o intrare de "dublu click" ce-mi activeaza niste iesiri.

 

sau mai este o varianta:

sa activez si TMR2, acesta sa-mi schimbe o variabila odata la 2 secunde care daca variabila schimbata de TMR2, sa pun in bucla main o decizie care doata la doua secunde(nu stiu de ce doua), sa imi masoare frecventa, in felul asta, timp de doua secunde cand microcontrolerul nu mai este ocupat cu masurarea frecventei sa execute celellalte operatiuni?

 

multumesc!



#41 OFFLINE   Liviu M

Liviu M

    -

  • Membri
  • PipPipPipPipPip
  • 3,071 posts
  • Locatie:In sat cu Doru

Posted 09 November 2014 - 01:50 PM

daca am o situatie in care am active intreruperile: IOC-portA, TMR0 si TMR1, ele sunt independente intre ele?

Da si nu.
Fiecare intrerupere in sine e independenta de celelalte si e generata de perifericul "atasat".
Tratarea intreruperilor, pe de alta parte, se face "la gramada", adica exista o singura "functie" care e apelata de toate intreruperile *). In cadrul Este treaba programatorului sa se ocupe de intreruperi in mod corespunzator, testand flagurile pentru intreruperile pe care le-a activat.

*) Ma rog, asta la seria 16F, ca seria 18F are doua "functii", iar la seriile mai mari n-am idee.

Nu stiu cum se face in flowcode, in XC8 functia de tratare a intreruperilor pentru TMR0 si TMR1 de mai sus se scrie cam:
void interrupt functie_intreruperi(){
   if(TRM0IF && TMR0IE) { //daca intreruperea e activa si flagul corespunzator e 1
      ... //prelucrari intrerupere TMR0
      TMR0IF = 0; //reseteaza flagul, ca sa nu reintre in intrerupere fara motiv
   }
   if(TRM1IF && TMR1IE) { //daca intreruperea e activa si flagul corespunzator e 1
      ... //prelucrari intrerupere TMR1
      TMR1IF = 0; //reseteaza flagul, ca sa nu reintre in intrerupere fara motiv
   }
}
Din cauza de if-uri, functia prelucreaza doar intreruperile "active", fara if-uri la fiecare intrerupere s-ar prelucra toate modulele.

Din restul intrebarilor n-am inteles nimic.

#42 OFFLINE   bercioiu

bercioiu

    Membru

  • Membri
  • PipPip
  • 840 posts
  • Locatie:Bucuresti

Posted 09 November 2014 - 02:36 PM

IOC in Flowcode, intreruperile nu trebuie sa aiba treaba cu bucla principala, pentru fiecare intrerupere in parte, trebuie sa creezi cate un macro separat, macro ce va fi tratat in momentul "decalnsarii" intreruperii respective. Pentru IOC, nu trebuie sa interoghezi intrarea in bucla principala, tot ce trebuie sa faci este sa filtrezi in macroul IOC-ului portul pentru a detecta ce pin a fost activat. In fuctie de pic, poti seta in intrerupere la ce pini sa reactioneze intreruperea pe port. Nu are nicio legatura (in sensul in care ai prezentat tu) IOC cu niciun TMR sau RB0.

Daca tu interoghezi portul in bucla principala, ce rost mai are intreruperea?



#43 OFFLINE   Vezi Muti

Vezi Muti

    Nou venit

  • Membri
  • Pip
  • 92 posts

Posted 09 November 2014 - 05:45 PM

fara sa vreau sa jignesc pe cineva, flowcode se incadreaza perfect la catgoria: "programming for idiots".

pune mana si invata un limbaj de programare daca vrei sa pricepi ce insemna "lucrul bine facut".



#44 OFFLINE   bercioiu

bercioiu

    Membru

  • Membri
  • PipPip
  • 840 posts
  • Locatie:Bucuresti

Posted 09 November 2014 - 07:03 PM

Doar un ignorant poate afirma asa ceva, fara sa stie despre ce vorbeste...

PUNE MANA SI CITESTE DESPRE ACEST PROGRAM si dupa aceea exprima-te!

Cu Flowcode, poti face orice, foarte simplu, doar sa-ti mearga capul!



Cu_reclama

Cu_reclama
  • Membri

#45 OFFLINE   ardiles

ardiles

    Membru

  • Membri
  • PipPip
  • 226 posts

Posted 10 November 2014 - 11:56 PM

@vezi muti, eu sunt ELECTRICIAN, lucrez in instalatii de MT-asta este baza la mine... ca ma JOC de-a electronica, flowcode este exact ceea ce trebuie...

si colegul bericioiu, in postarea 44, are MARE DREPTATE, se poate face orice, capul sa iti mearga...

chiar cu spusele de mai sus despre cu ce ma ocup, tot voi cumpara versiunea profesionala de flowcode, pentru ca acest program merita atentie si trebuie sustinut.

revenind la oile noastre,

@bericioiu cu privire la postarea 42:

nestiind sa explic in termeni explic ce am pe viu:

pentru IOC, am  o intrare de "dublu click"(la al doilea click - schimba variabila si activeaza o iesire), intrare dublu click pe RA3; tot IOC am pe RA4  si RA5 unde am conectat un encoder! deci pentru intreruperea IOC, am un macro in care am facut jocul de variabile pentru encoder, dar si acel dublu click pe RA3...

TMR0 am macro separat unde am responsabil timpi(de resetare, de revenire click la 0 daca am apasat doar un click si al doilea nu a mai venit-pe RA3)

 

intrebarea vine dupa ce am constat ca in timpul simularii din flowcode, daca am schimbare pe oricare dintre pinii unde am ioc activ, dupa ce trece prin macroul intreruperii IOC, imediat dupa asta imi trateaza macroul TMR0...

indiferent de prescalerul TMR0...

 

avand nevoie si de TMR1, voiam sa stiu daca acesti registri TMR0/TMR1/IOC, au vreo legatura intre ei, adica daca am IOC pe un pin, automat dupa ce trateaza macro IOC, imi va trece si prin macro TMR0/1/2...


@LiviuM, cand spui reseteaza flag-ul, ca sa nu mai reintre in intrerupere fara motiv, practic dezactivezi intreruperea respectiva?

 

am mai avut tentative de a ma juca de-a programarea insa pana nu mi-a pus in program colegul bericioiu, Flowcode, nu s-a legat mai nimic...intuneric...

ei bine, noroc cu colegul Bericioiu, inca odata pe aceasta cale ii multumesc, a mai aprins un bec acolo...acum la mine e treaba cu mentinutul becului aprins mai intens sau mai putin intens.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users