Sari la conținut
ELFORUM - Forumul electronistilor

Lucreaza cineva cu FLOWCODE ?


bercioiu

Postări Recomandate

Salutare tuturor! Dupa lungi cautari am gasit un program cu care se poate realiza un soft pentru Pic-uri fara sa ai cine stie ce cunostiinte despre programare...Este vorba de "FLOWCODE"...Toate bune si frumoase; am facut programul in "FLOWCODE", l-am simulat, totul pare sa fie OK dar cand il downloadez in PIC nu "face" nimic... Folosesc programatorul AD-PIC01V de la Adelaida si ICprog...Am incercat si cel mai simplu program sa blink-uiesc un led dar nimic...Mentionez ca in programul meu am nevoie de toti pinii, deci folosesc oscilator intRC si master clear intern. config word in ICprog am pus 3f18 iar in Flowcode am setat clock speed la 4 MHz...Nu stiu ce gresesc...Dau o bere mare daca ma scoate cineva din necaz!

Editat de bercioiu
corectare ortografica
Link spre comentariu

Acesata este codul in C pe care il genereaza FLOWCODE:

//Defines for microcontroller
#define P16F88#define MX_EE
#define MX_EE_TYPE2
#define MX_EE_SIZE 256
#define MX_SPI
#define MX_SPI_B
#define MX_SPI_SDI 1
#define MX_SPI_SDO 2
#define MX_SPI_SCK 4
#define MX_UART
#define MX_UART_B
#define MX_UART_TX 5
#define MX_UART_RX 2
#define MX_I2C
#define MX_I2C_B
#define MX_I2C_SDA 1
#define MX_I2C_SCL 4
#define MX_PWM
#define MX_PWM_PORT portb
#define MX_PWM_TRIS trisb
#define MX_PWM_CNT 1
#define MX_PWM_0 0//PIC Functions
#include 
#pragma CLOCK_FREQ 4000000//Configuration data
#pragma DATA 0x2007, 0xffffffff
#pragma DATA 0x2008, 0xffffffff//internal functions
#include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.c"
//Macro function declarations
//Variable declarations
//Supplementary defines
//Macro implementations
//Supplementary implementationsvoid main(){ 
//PIC Initialisation ansel = 0; cmcon = 0x07; 
//Interrupt initialisation code option_reg = 0xC0; 
//Loop 
//Loop: While 1 while( 1 ) { 
//Output 
//Output: 1 -> A0 trisa = trisa & 0xfe; if (1) porta = (porta & 0xfe) | 0x01; else porta = porta & 0xfe; 
//Delay 
//Delay: 500 ms delay_ms(255); delay_ms(245); 
//Output 
//Output: 0 -> A0 trisa = trisa & 0xfe; if (0) porta = (porta & 0xfe) | 0x01; else porta = porta & 0xfe; 
//Delay 
//Delay: 500 ms delay_ms(255); delay_ms(245); } mainendloop: goto mainendloop;}

 

Editat de bercioiu
inserare cod
Link spre comentariu

Flowcode se gaseste aici:

http://microcontrollershop.com/product_ ... cts_id=527

Banuiesc ca aveti full version...

 

Acesata este codul in C pe care il genereaza FLOWCODE:

 

 

//Defines for microcontroller

#define P16F88

#define MX_EE

#define MX_EE_TYPE2

#define MX_EE_SIZE 256

#define MX_SPI

#define MX_SPI_B

#define MX_SPI_SDI 1

#define MX_SPI_SDO 2

#define MX_SPI_SCK 4

#define MX_UART

#define MX_UART_B

#define MX_UART_TX 5

#define MX_UART_RX 2

#define MX_I2C

#define MX_I2C_B

#define MX_I2C_SDA 1

#define MX_I2C_SCL 4

#define MX_PWM

#define MX_PWM_PORT portb

#define MX_PWM_TRIS trisb

#define MX_PWM_CNT 1

#define MX_PWM_0 0

 

//PIC Functions

#include

#pragma CLOCK_FREQ 4000000

 

//Configuration data

#pragma DATA 0x2007, 0xffffffff

#pragma DATA 0x2008, 0xffffffff

 

 

configuration data pare sa fie defect, trebuie sa setati in icprog fuzibilele in mod corespunzator cu realitatea de pe cablajul dvs.

 

//internal functions

#include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.c"

 

//Macro function declarations

 

 

//Variable declarations

 

 

 

//Supplementary defines

 

 

//Macro implementations

 

//Supplementary implementations

 

 

void main()

{

 

//PIC Initialisation

ansel = 0; ; AN 6:0 sunt toti IO, AD dezactivat

cmcon = 0x07; ; comparatoare dezactivate

 

 

//Interrupt initialisation code

option_reg = 0xC0;

; pull up enabled, interrupt on rising edge RBO/INT, prescaller assigned to TMR0, rata 1:2

 

//Loop

//Loop: While 1

while( 1 ) ; forever loop

{

//Output

//Output: 1 -> A0

trisa = trisa & 0xfe;

if (1)

porta = (porta & 0xfe) | 0x01;

 

; porta si logic cu 0xFE mascheaza bitul A0, rezultatul mascarii ® sau logic cu 0x01 inseamna 1 pe A0 daca R este 1 respectiv 0 pe A0 daca R este 0. O aiureala de cod, probabil gresiti ceva in flowchart

 

else

porta = porta & 0xfe;

 

 

//Delay

//Delay: 500 ms

delay_ms(255);

delay_ms(245);

 

 

//Output

//Output: 0 -> A0

trisa = trisa & 0xfe;

if (0)

porta = (porta & 0xfe) | 0x01;

else

porta = porta & 0xfe;

 

; nu exista nici o diferenta intre codul trimis pentru 1 logic si 0 logic, n-are cum sa palpaie LED-ul

 

//Delay

//Delay: 500 ms

delay_ms(255);

delay_ms(245);

 

 

}

 

 

mainendloop: goto mainendloop;

}

Link spre comentariu

Uitati-va la fila cu extensia *.asm.

Iti multumesc pentru raspuns! Daca as intelege ce mi-ai raspuns, crede-ma ca nu as fi apelat la Flowcode... Astept sa-mi vina Versiunea full de la ei si hardware-ul de la e-blocks ca sa faca ele treaba asta, alfel este peste puterea mea de a intelege...Sunt pe dinafara...nu reusesc sa vad atasamentul ta. Oricum iti multumesc! :partyman:
Link spre comentariu

Uitati-va la fila cu extensia *.asm.

Iti multumesc pentru raspuns! Daca as intelege ce mi-ai raspuns, crede-ma ca nu as fi apelat la Flowcode... Astept sa-mi vina Versiunea full de la ei si hardware-ul de la e-blocks ca sa faca ele treaba asta, alfel este peste puterea mea de a intelege...Sunt pe dinafara...nu reusesc sa vad atasamentul ta. Oricum iti multumesc! :partyman:
Se pare ca l-a sters.Dupa salvarea fisierului in care desenati organigrama veti avea ceva de genul nume.fcfPuteti compila in C sau in assembler. Selectand assembler veti obtine un fisier nume.asm pe care-l puteti inspecta in Notepad.Acolo veti vedea de fapt ce se intampla cu frumosul flowchart desenat si cat de imbarligat este codul asm.Fila hexazecimala nume.hex pe care o inscrieti in PIC este creata fie pe baza compilarii fisierului nume.asm fie a fisierului nume.cNume.c este un fisier echivalent cu ce ati postat dvs anterior si nu ofera informatii foarte detaliate in cazul unui program cu bug-uriImi place softul asta, dar nu cred sa puteti realiza programe foarte complexe. Daca va functioneaza ceva mai complicat (un LCD si un keypad de exemplu) va rog sa postati rezultatul, chiar si un "imi merge" ajunge.succes
Link spre comentariu
vsurducan said:

Imi place softul asta, dar nu cred sa puteti realiza programe foarte complexe. Daca va functioneaza ceva mai complicat (un LCD si un keypad de exemplu) va rog sa postati rezultatul, chiar si un "imi merge" ajunge.succes

Iti multumesc pentru raspunsul promt. Algoritmul de programare il cunosc (schema de baza scriere program>compilare>upload-are in mcu ) dar nu ma descurc practic cu ce cunostinte am asa ca, apelez la softuri specializate sa ajute puturosi...Proiecte prea complicate nici nu am, am in proiect sa-mi realizez un modul de ridicare geamuri , un modul de pornire al motorului si o alarma pornind de la inchiderea din telecomanda (am 3 canale) montata pe Passat . Flowchart-urile le-am realizat, programele functioneaza bine in Flowcode dar nu reusesc sa le pun in mcu...asa ca astept sa-mi trimita cei de la matrix multimedia tot ce-mi trebuie sa imi pot definitiva proiectele. Daca ai flowcode iti pot trimite un flowchart de la unul din module sa vezi despre ce-i vorba. 

Editat de bercioiu
ortografie
Link spre comentariu
  • 3 ani mai târziu...
Vizitator iliehar

Stie cineva in Flowcode progamul in realitate ruleaza ca in simulare , adica daca ai un timer in progam nu mai trece de el pana nu finalizeaza timpul .Mi se pare absurd eu vreau sa pun un timer doar pe ceva si restul progamului sa lucreze independent.Adica mai multe lini de progam sa lucreze simultan fara sa se astepte una pe cealalta.Stie cineva?

Link spre comentariu

Salutare , Eu folosesc flowcode 4 am folosit si 3 ce vreau sa iti spun e sa ai grija sa setezi tipul de oscilator pe care il folosesti tu ca pe default este RC. Eu acolo am avut probleme.Bafta

Link spre comentariu
  • 1 lună mai târziu...

Stie cineva in Flowcode progamul in realitate ruleaza ca in simulare , adica daca ai un timer in progam nu mai trece de el pana nu finalizeaza timpul .Mi se pare absurd eu vreau sa pun un timer doar pe ceva si restul progamului sa lucreze independent.Adica mai multe lini de progam sa lucreze simultan fara sa se astepte una pe cealalta.Stie cineva?

ar trebui sa mearga baga partea de program activa intr-un loop iar delayurile punele dupa.e interesant flow code asta nici eu nu stiu programare dar mi-a dat un impuls.vezi versiunea demo are multe exemple studiaza-le pe fiecare in parte si ai sa vezi ca se pot face destule chestii frumoase.pe mine flowcode ma ajutat sa invat basicul am prins ideia de "limbaj de programare" lupta-te cu el si ai sa reusesti
Link spre comentariu

Stie cineva in Flowcode progamul in realitate ruleaza ca in simulare , adica daca ai un timer in progam nu mai trece de el pana nu finalizeaza timpul .Mi se pare absurd eu vreau sa pun un timer doar pe ceva si restul progamului sa lucreze independent.

Daca vrei paralelism ("multitasking" :rade: ) de la un PIC, trebuie sa lucrezi cu intreruperi.Adica programezi timerul sa-si faca treaba, programezi restul codului sa faca ce-ti trebuie, activezi intreruperile (generala si pentru timer) si in functia de tratare a intreruperilor, in care ajungi cand timerul genereaza intreruperi, faci prelucrarile ulterioare "terminarii" timerului.
Link spre comentariu

FlowCode este simplu de utilizat dar nu inveti programare cu el (programarea este esentiala) , pentru a realiza cateva jocuri de lumini e excelent dar la programe mai complexe deja pare mai simplu microPascal/C :rade:

Link spre comentariu
  • 4 ani mai târziu...

Salut! De curand am inceput sa folosesc si eu flowcode(bata fiind in limbaje de programare)

Dupa zeci si sute de ore de documentare am inteles cat de cat cum sta treaba cu picurile si arhitectura lor.

Primul meu proiect cu flowcode simuleaza sau ar trebui sa simuleze initializarea unui automat de cafea(dat fiind faptul ca imi este cunoscuta logica de functionare).

In program am folosit pic16f876,display lcd si un sensor de temperature.Toate bune si frumoase.deschid proteus implementez schema ,incarc hexul generat de flow code insa

in simulare display-ul nu afiseaza nimic doar se apride.

Exista cumva incompatibilitati intre flowcode si proteus,gresesc eu undeva sau flowcode nu genereaza ce trebuie?

Multumesc celor ce isi pot face timp sa raspunda la acest topic.

PS:urmatorul pas in simularea automatului este adaugarea tastaturii corespunzatoare bauturilor,aici cred ca va trebui sa folosesc intreruperile sau timer-ele(cred)

Link spre comentariu

Din câte știu eu , lui Proteus nu-i pasă ( și nici nu știe ) cum s-a generat  .hex-ul , totul este să conțină cod .asm compatibil cu µC simulat și să fie într-un format pe care îl înțelege . Despre FlowCode  nu am habar , am înțeles doar că nu-i chiar un limbaj de programare .

Link spre comentariu

Multumesc mult pentru raspuns.

In utima ora am studiat mai bine datele despre display si am gasit buba.

In flowcode conexiunea am facut-o cu data 0,1,2 si 3 la portb insa in proteus am folosit 4,5,6 si 7 la portb cred ca asta se refera la conexiunea in 4biti a display-ului.

Daca este asa accord un minus pentru flowcode.Tind sa cred ca vor mai fi multe avand in vedere spusele colegilor de mai sus insa voi merge in continuare cu el.

Cumva hexul generat de flowcode are o dimensiune mai mare decat daca ar fi fost creat cu un limbaj de programare specializat?

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