Flowcode, pointers, tables, c code and assembler

For Flowcode users to discuss projects, flowcharts, and any other issues related to Flowcode 4.
To post in this forum you must have a registered copy of Flowcode 4 or higher. To sign up for this forum topic please use the "Online Resources" link in the Flowcode Help Menu.

Moderator: Benj

Post Reply
r_romeo
Posts: 54
Joined: Wed Nov 02, 2011 3:57 pm
Has thanked: 14 times
Been thanked: 3 times

Flowcode, pointers, tables, c code and assembler

Post by r_romeo »

Hi
I am working on a project were I get data from an input (rs-232, CAN, etc) , depending on the data , can be classified in two types , so I have two tables were they can be placed

I need to compare each variable with all the ones that are in the opposite table

I am not expert in C, but I find a routine in assembler that can work for my purposes

My problem is both tables need a starting address but I am afraid of overwriting the ones used by the C code , and also the C code can overwrite later
I there a way of writing in assembler a generic space for both tables?

here is the code I think can help me

movlw 0x60
movwf tabla1 ; assign first address for table1
movlw 0x70
movwf tabla2 ;assign first address for table2

in_comp movf tabla1,W
movwf FSR ; pointer to the first address of table1

movf INDF,w ;data in the first address of table1-->w
movwf temp1 ;w-->temp1 (we need w y FSR)

movf tabla2,W
movwf FSR ;pointer to the first address of table2

movf INDF,w ;data in the first address of table2-->w

subwf temp1,F ;w-temp1-->temp1
btfss STATUS,Z ;¿is zero?
goto different ;NO
goto equal ;SI

different bsf F_COMP_RX; flag tells has found a non coincident byte

return

equal bcf F_COMP_RX ; is 'z', last byte
sublw 'z' ; checks if the data is the last one (z)


btfss STATUS,Z ;¿is the lats one?
goto comp_nofin ; is not 'z'
return

comp_nofin incf tabla1; go to the next address of table1
incf tabla2; go to the next address of table2
goto in_comp ;keeps on comparing


can someone guide me through the process of implementing this code? will this work? is there any other way of doing it? without c or assembler?

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: Flowcode, pointers, tables, c code and assembler

Post by Benj »

Hello,

This should be possible using Flowcode arrays or if pushed C code. This would be much simpler then assembler coding.

Flowcode arrays would have to be created and populated with the correct data at the top of your main.

A C code array can be coded to have initial values so you do not have to manually load the values in on start up.

You would then just need a loop in your Flowcode program to cycle through each element of the array and perform a comparison.

Post Reply