Kreator Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 My_var = a*2^7+b*2^6+c*2^5+...+h Link spre comentariu
mbzz77 Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 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
informer Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 Pai fa-le byte facand: a_byte = 0x01 & a Sau incearca un cast la (byte). (nu stiu flowcode, nu stiu ce merge si ce nu) Link spre comentariu
gas2 dan Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 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
Elison Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 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
mbzz77 Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 2 hours ago, informer said: Pai fa-le byte facand: a_byte = 0x01 & a Sau incearca un cast la (byte). (nu stiu flowcode, nu stiu ce merge si ce nu) Multumesc, o sa incerc sa vad ce iese. Link spre comentariu
mbzz77 Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 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
mbzz77 Postat Decembrie 28, 2018 Partajează Postat Decembrie 28, 2018 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
Elison Postat Decembrie 29, 2018 Partajează Postat Decembrie 29, 2018 (editat) 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 Decembrie 29, 2018 de Elison Link spre comentariu
mbzz77 Postat Decembrie 29, 2018 Partajează Postat Decembrie 29, 2018 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
Elison Postat Decembrie 29, 2018 Partajează Postat Decembrie 29, 2018 Cu varianta propusa de mine nu mai ai nevoie de cele opt variabile de tip byte. Link spre comentariu
mbzz77 Postat Decembrie 29, 2018 Partajează Postat Decembrie 29, 2018 6 minutes ago, Elison said: Cu varianta propusa de mine nu mai ai nevoie de cele opt variabile de tip byte. Adevarat, multumesc. Link spre comentariu
kkkabuu Postat Septembrie 22, 2019 Partajează Postat Septembrie 22, 2019 Sal. Stie cineva cum se activeaza Vref+ in flowcode ca referinta unui adc? Multumesc anticipat Link spre comentariu
bercioiu Postat Septembrie 22, 2019 Autor Partajează Postat Septembrie 22, 2019 (editat) Pai, simplu: la proprietati adc, alegi vdd sau vref+ Editat Septembrie 22, 2019 de bercioiu Link spre comentariu
kkkabuu Postat Septembrie 23, 2019 Partajează Postat Septembrie 23, 2019 Da am facut asta doar ca la alimentare la pinul destinat vref am 0V si daca scot pic-ul apar cei 1.235V dati de LM. Este vorba de Flowcode 5 Cred ca trebuie o linie de cod la inceputul buclei 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