Sari la conținut
ELFORUM - Forumul electronistilor

Lucreaza cineva cu FLOWCODE ?


bercioiu

Postări Recomandate

Multumesc. Am incercat si acesta varianta, dar nu merge. La compilare: Flowcode.c(188:19): error: invalid operand '* '  , Flowcode.c(188:23): error: invalid operand '^ '

Daca schimb tipul variabilelor a ... h din bool in byte compileaza cu succes.  Se pare ca trebuie o alta abordare. O idee ar fi cu ajutorul limbajului C Sets a single bit si Clears a single bit din variabila.

 

Link spre comentariu
9 minutes ago, mbzz77 said:

Multumesc. Am incercat si acesta varianta, dar nu merge. La compilare: Flowcode.c(188:19): error: invalid operand '* '  , Flowcode.c(188:23): error: invalid operand '^ '

Daca schimb tipul variabilelor a ... h din bool in byte compileaza cu succes.  Se pare ca trebuie o alta abordare. O idee ar fi cu ajutorul limbajului C Sets a single bit si Clears a single bit din variabila.

 

Apropo de idei, daca tu chiar vrei sa intelegi ce faci, nu utilezezi Flowcode. Nu are legatura cu programarea. Si mai zic ca poate este bine sa citesti ce este un bool si un byte. In rest, este o problema interesanta. Am sa incerc sa te ajut si eu.

Link spre comentariu
19 hours ago, mbzz77 said:

Vroiam sa compun o variabila de tip Byte din 8 variabile de tip Bool si nu stiam cum. Intre timp am  gasit solutia pe care o expun si aici, poate sunt si alti utilizatori carora le va fi de folos.

My_var= a << 7 | b << 6 | c << 5 | d << 4 | e << 3 | f << 2 | g << 1 | h 

unde: My_var este de tip Byte

           a,b,c,d,e,f,g,h    sunt variabilele de tip Bool

 

Acest code se executa doar daca declari variabilele te tip bool ca fiind variabile de type byte, idem pentru variantele sugerate de alti colegi.

Link spre comentariu
2 hours ago, gas2 dan said:

Apropo de idei, daca tu chiar vrei sa intelegi ce faci, nu utilezezi Flowcode. Nu are legatura cu programarea. Si mai zic ca poate este bine sa citesti ce este un bool si un byte. In rest, este o problema interesanta. Am sa incerc sa te ajut si eu.

Ai dreptate, Flowcode e altceva.... dar poti dezvolta aplicatii interesante si utile....  In Flowcode cand declari o variabila ea poate fi de tipul Bool, Byte, Int, UInt si alte cateva..... de aceea  m-am exprimat asa...  Oricum multumesc pentru sfaturi si orice ajutor !  

Link spre comentariu
1 hour ago, Elison said:

 

Acest code se executa doar daca declari variabilele te tip bool ca fiind variabile de type byte, idem pentru variantele sugerate de alti colegi.

Asa este, am testat cum spui tu si compileaza fara probleme.  Interesant este ca simuland in Flowcode cu a...h bool, functiona perfect.

Link spre comentariu
17 hours ago, mbzz77 said:

Asa este, am testat cum spui tu si compileaza fara probleme.  Interesant este ca simuland in Flowcode cu a...h bool, functiona perfect.

 

O varianta foarte simpla pentru accesul bitilor variabilei My_var( declarata ca byte) este urmatoarea: in C code " FCV_MY_VAR.0=1; " pentru ai atribui valoarea 1 bitului 0 si " FCV_MY_VAR.0=0;" pentru ai atribui valoarea 0.

Poti sa faci asta pentru oricare din cei 8 biti de la zero la sapte.

Acest mod de accesare a bitilor nu mai necesita alte operatii pentru My_var , variabila se acceseaza direct, ca oricare variabila din proiect.

Daca nu intelegi cum se face, pot sa pun si un exemplu.

Editat de Elison
Link spre comentariu
6 hours ago, Elison said:

 

O varianta foarte simpla pentru accesul bitilor variabilei My_var( declarata ca byte) este urmatoarea: in C code " FCV_MY_VAR.0=1; " pentru ai atribui valoarea 1 bitului 0 si " FCV_MY_VAR.0=0;" pentru ai atribui valoarea 0.

Poti sa faci asta pentru oricare din cei 8 biti de la zero la sapte.

Acest mod de accesare a bitilor nu mai necesita alte operatii pentru My_var , variabila se acceseaza direct, ca oricare variabila din proiect.

Daca nu intelegi cum se face, pot sa pun si un exemplu.

Multumesc.  O sa vad care varianta ocupa mai putin loc in memorie.  Am reusit si eu cu  MY_VAR = a << 2 | b |  c << 3 | d << 3 | e << 7 | f   . Pentru  LED a aprins a = 1 ( a conectat la RB2), LED b aprins  b = 8 (b conectat la RB3), LED c aprins c=2  (c conectat la RB4), LED d aprins d = 4 (d conectat la RB5), LED e aprins e = 1 (e conectat la RB7), LED f aprins f = 2 (f conectat la RB1)   si a functionat perfect in simulare. Toate variabilele declarate Byte.

Link spre comentariu
  • 8 luni mai târziu...

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