PORT B sending sequence
Moderator: Benj
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
PORT B sending sequence
Hi everyone,
I need a little guidance on how to address sending out bits on Port B to control 3 functions with out turning off actions that were in the lower Port B settings.
I really don't want to have to write variables for 8 Banks and 2 states and 8 ( A- G ) segments. ( 128 Variables )
I have put a small PDF to help layout my mystery. ( Sequence of events PDF )
i have also uploaded a sample of the patterns to change the Vans from Ball 1 to Ball 3. ( Sequence Flow JPG )
I hope there is a way.
John
I need a little guidance on how to address sending out bits on Port B to control 3 functions with out turning off actions that were in the lower Port B settings.
I really don't want to have to write variables for 8 Banks and 2 states and 8 ( A- G ) segments. ( 128 Variables )
I have put a small PDF to help layout my mystery. ( Sequence of events PDF )
i have also uploaded a sample of the patterns to change the Vans from Ball 1 to Ball 3. ( Sequence Flow JPG )
I hope there is a way.
John
- Attachments
-
- Segment Flow.jpg (121.14 KiB) Viewed 8837 times
-
- Sequence of events.pdf
- (222.94 KiB) Downloaded 285 times
-
- Matrix Staff
- Posts: 9520
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
- Contact:
Re: PORT B sending sequence
Hi John,JLeith wrote:Hi everyone,
I need a little guidance on how to address sending out bits on Port B to control 3 functions with out turning off actions that were in the lower Port B settings.
One way is to use masking techniques.
Basically you AND with a value if you want to clear bits and not affect others
You OR with a value if you want to set bits and not affect others.
Take a look at this:
http://www.matrixmultimedia.com/article.php?a=366
and
http://extremeelectronics.co.in/avr-tut ... velopment/
Even though last url shows AVR, same will apply to pics.
I would help more, but have to go to work now.
If your still stuck, will post flowchart later.
Martin
Martin
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Hi Martin,
i have read the info and I must say it looks a bit deep to grasp. Yes I will need a little show an tell to see if this is the task I will need.
Add and Or I don't know where to start when I need to send the flow to control the Segments.
The trick is Address only the Segment because the A - G leads are common to all the Segments.
Once you have the Segment Powered up by supplying 12 volts to the Anode more or less.
Step 2 Send the ON or OFF the vans have relays to flip Dark for OFF and Yellow for ON.
Step 3 Is send the A - G segments you need to address.
There is a RC Timer set on Port A Bit 4 to control the 250 ms on state to Segment Power so as not to cook the relays.
You are off to work and I'm off to sleep 12:07 PM PST.
John
I have uploaded the Pic Side diagram to help a little.
i have read the info and I must say it looks a bit deep to grasp. Yes I will need a little show an tell to see if this is the task I will need.
Add and Or I don't know where to start when I need to send the flow to control the Segments.
The trick is Address only the Segment because the A - G leads are common to all the Segments.
Once you have the Segment Powered up by supplying 12 volts to the Anode more or less.
Step 2 Send the ON or OFF the vans have relays to flip Dark for OFF and Yellow for ON.
Step 3 Is send the A - G segments you need to address.
There is a RC Timer set on Port A Bit 4 to control the 250 ms on state to Segment Power so as not to cook the relays.
You are off to work and I'm off to sleep 12:07 PM PST.
John
I have uploaded the Pic Side diagram to help a little.
- Attachments
-
- IC8 PIC.jpg (39.24 KiB) Viewed 8823 times
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Forgot to upload the Flowcode.
Here is
Here is
- Attachments
-
- Direction Flow with new switch.fcf
- (133.96 KiB) Downloaded 238 times
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Martin I have done some more testing and placed in a PDF
I need a method to control the LED's to show me the action I tried Delays but they led's turn off once the display is stepped off.
I tried to see how I can simulate the LED for the ( A ) vans to wait for the Segment power.
In the design there is a RC time connected to Port A pin 4 that I have to add some code into the flow but If I cant see the LED's staying on during simulation is tough.
I set my 'Green" led to simulate the Timer. I don't know how to simulate the Port A to stay active for 250 ms to allow the Van's to change.
I uploaded the Flowcode. I modified the OUT sequence for Out = 1. But I don't really see it working.
John
I need a method to control the LED's to show me the action I tried Delays but they led's turn off once the display is stepped off.
I tried to see how I can simulate the LED for the ( A ) vans to wait for the Segment power.
In the design there is a RC time connected to Port A pin 4 that I have to add some code into the flow but If I cant see the LED's staying on during simulation is tough.
I set my 'Green" led to simulate the Timer. I don't know how to simulate the Port A to stay active for 250 ms to allow the Van's to change.
I uploaded the Flowcode. I modified the OUT sequence for Out = 1. But I don't really see it working.
John
- Attachments
-
- Direction Flow with new switch.fcf
- Flow to simulate the Port B sequence
- (134.54 KiB) Downloaded 266 times
-
- Digit Flow for ElectroMechanical digits.pdf
- Segment Trial
- (176.64 KiB) Downloaded 302 times
-
- Matrix Staff
- Posts: 9520
- Joined: Sat May 05, 2007 2:27 pm
- Location: Northamptonshire, UK
- Has thanked: 2585 times
- Been thanked: 3815 times
- Contact:
Re: PORT B sending sequence
Hi, just looked at your Circuit and Flowchart.
With the circuit you have got MCLR shorted to GND. This will just keep the microcontroller permanently in reset condition, so your program
will never run.
Within your flowchart you have got
Important to remember: registers must be in lower case, bit names in uppercase.
Also a semicolon is required at the end.
So its:
portb = 1;
trisb = 1;
With the above statement, all that will do is make bit0 of portB into an input.
To make the whole of portb into an input u can either use an input icon or used:
trisb = 255;
You wond need the portb statmet as that wont do anything.
Another thing is you have:
Ball = Ball
The compiler will optimize that out, so it's not used.
Reason is if ball = 5
then you have got 5 = 5
So the variable is not wort having since it's value does not change.
Not had much time tonight, loads to do, so will take another look at your flowcode when I ge the chance.
Martin
With the circuit you have got MCLR shorted to GND. This will just keep the microcontroller permanently in reset condition, so your program
will never run.
Within your flowchart you have got
Code: Select all
{
PORTB = 1
TRISB = 1
}
Also a semicolon is required at the end.
So its:
portb = 1;
trisb = 1;
With the above statement, all that will do is make bit0 of portB into an input.
To make the whole of portb into an input u can either use an input icon or used:
trisb = 255;
You wond need the portb statmet as that wont do anything.
Another thing is you have:
Ball = Ball
The compiler will optimize that out, so it's not used.
Reason is if ball = 5
then you have got 5 = 5
So the variable is not wort having since it's value does not change.
Not had much time tonight, loads to do, so will take another look at your flowcode when I ge the chance.
Martin
Martin
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Thank you Martin,
Yes I follow your steps on the ( Port ) listings I have a note it has to be in lower case. I have had to do a lot of twisting to see how I can make it work that I have left some statements messed up and catch them as I go.
On the MCLR might not be clear on the drawing but it actually is connected thru a diode and resistor to + 5. it also runs to the Data In Jack ( Jumps over the Ground. Not to clear in the drawing.
I really want to thank you for your help in debugging the process of design the process in Flowcode.
I have cleaned up some routines and will post a new version before the night is out.
John
Yes I follow your steps on the ( Port ) listings I have a note it has to be in lower case. I have had to do a lot of twisting to see how I can make it work that I have left some statements messed up and catch them as I go.
On the MCLR might not be clear on the drawing but it actually is connected thru a diode and resistor to + 5. it also runs to the Data In Jack ( Jumps over the Ground. Not to clear in the drawing.
I really want to thank you for your help in debugging the process of design the process in Flowcode.
I have cleaned up some routines and will post a new version before the night is out.
John
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Hi Martin,
Well I think I have exhausted all the process I can think of. Reading is getting a bit blinding and no new adventures.
I thought I would try controlling the Push buttons as INPUT Port B and then switch the display to OUTPUT Port B. Maybe its inherent how the buttons and Leds work in Flowcode.
I think the C:code will work I read it in one of my books in the early testing of the "Led Projects"
{
bsf 03h,5;
bsf OPTION,7;
movlw ob0000000; //set PortB Output
movwf trisb;
bcf 03h,5;
}
Reverse B bits for input setting.
I captured the action when I press the Button with the vision that the LED wold not fire they did. I was using Ball 1 to se if the code would work. Press the Button and the B0 Led lights up ?
I named the Flowcode project 'Project with C Code" just so I can keep track of the process.
In the past message you were asking about the ( Ball = Ball ) this is it the Switch detection so that when the Ball 1 returns and the Button is press it now has 'Ball 1" as it enters the Ball display that takes Ball 1 + 1 and now display Ball 2.
John
Well I think I have exhausted all the process I can think of. Reading is getting a bit blinding and no new adventures.
I thought I would try controlling the Push buttons as INPUT Port B and then switch the display to OUTPUT Port B. Maybe its inherent how the buttons and Leds work in Flowcode.
I think the C:code will work I read it in one of my books in the early testing of the "Led Projects"
{
bsf 03h,5;
bsf OPTION,7;
movlw ob0000000; //set PortB Output
movwf trisb;
bcf 03h,5;
}
Reverse B bits for input setting.
I captured the action when I press the Button with the vision that the LED wold not fire they did. I was using Ball 1 to se if the code would work. Press the Button and the B0 Led lights up ?
I named the Flowcode project 'Project with C Code" just so I can keep track of the process.
In the past message you were asking about the ( Ball = Ball ) this is it the Switch detection so that when the Ball 1 returns and the Button is press it now has 'Ball 1" as it enters the Ball display that takes Ball 1 + 1 and now display Ball 2.
John
- Attachments
-
- Project with C code.fcf
- (131.75 KiB) Downloaded 242 times
-
- C code.jpg (92.77 KiB) Viewed 8792 times
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
I believe I have worked out the issues with running the project as fast as possible and respond to my inputs. I have added the small leds to my panel so I can see when the action happens. The Clear Ball & Strike works and also the Clear Board.
I am no closer to working out how to make the Buttons ( Port B ) as INPUT and then when a action is requested switch to OUTPUT ( Port B ). I tried to use "C" coding but it was like Flowcode jumped right over the code.
Also how to lock the Port B led's to an on state while it is sending out the Port B output display. It looks like once the Led setting is activate the Led Lights, then as soon as the action steps past the led's turn off.
Even at a speed ( 10 ) I cant keep them on.
I have uploaded the fresh Flowcode called : Flowcode Scoreboard Nov 23.
John
I am no closer to working out how to make the Buttons ( Port B ) as INPUT and then when a action is requested switch to OUTPUT ( Port B ). I tried to use "C" coding but it was like Flowcode jumped right over the code.
Also how to lock the Port B led's to an on state while it is sending out the Port B output display. It looks like once the Led setting is activate the Led Lights, then as soon as the action steps past the led's turn off.
Even at a speed ( 10 ) I cant keep them on.
I have uploaded the fresh Flowcode called : Flowcode Scoreboard Nov 23.
John
- Attachments
-
- Flowcode Scoreboard Nov 23.fcf
- Latest version 63
- (134.74 KiB) Downloaded 253 times
-
- Valued Contributor
- Posts: 2045
- Joined: Wed Aug 27, 2008 10:31 pm
- Location: Netherlands
- Has thanked: 553 times
- Been thanked: 1081 times
- Contact:
Re: PORT B sending sequence
John,
You are aware flowcode will not simulate C code? C code will only work on hardware (or simulators reading HEX files like Real PIC simulator)
Regards,
Jac
You are aware flowcode will not simulate C code? C code will only work on hardware (or simulators reading HEX files like Real PIC simulator)
Regards,
Jac
“Integrity is doing the right thing, even when no one is watching.”
― C.S. Lewis
― C.S. Lewis
- Enamul
- Posts: 1772
- Joined: Mon Mar 05, 2012 11:34 pm
- Location: Nottingham, UK
- Has thanked: 271 times
- Been thanked: 814 times
- Contact:
Re: PORT B sending sequence
Hi John,
Jac is absolutely right. You can download and use full version of Real PIC Simulator which is free for one month. Here is some tutorials of how to use the software..
http://www.matrixmultimedia.com/mmforum ... tor#p38288
Jac is absolutely right. You can download and use full version of Real PIC Simulator which is free for one month. Here is some tutorials of how to use the software..
http://www.matrixmultimedia.com/mmforum ... tor#p38288
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Thank you Jac
I was think I was going crazy trying to get something to happen and it would not work as I thought.
Jac do you know how I can then make Flowcode respond by making the Port B ports as Logic Low for Button action and then when it is time to send out the display change the bits to Logic High for sending out the display.
I will ha have a look at the "Real PIC Simulator.
John
I was think I was going crazy trying to get something to happen and it would not work as I thought.
Jac do you know how I can then make Flowcode respond by making the Port B ports as Logic Low for Button action and then when it is time to send out the display change the bits to Logic High for sending out the display.
I will ha have a look at the "Real PIC Simulator.
John
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Hello Enamul,
I took a look at the ( http://digitalelectrosoft.com/index ) and I sent them an email on the matter that maybe my PIC16F1826 is not supported. From the literature that you sent me it looks like it is what I will nee to finish my design with the addition of some C code to help handle the Port B function and the sending sequence.
Only info I did find is this:
Note
This is a limited functionality demo version. You cannot save projects, save to ASM file the disassembled program. The trial period is 30 days.
I have asked them to email them to see if my issues with Flowcode can be answered.
Enamul why won`t flowcode indicate that the C code would not be followed when you can add code and no indications.
Enamul or Jac have you used the `Real PIC Simulator ?
John
I took a look at the ( http://digitalelectrosoft.com/index ) and I sent them an email on the matter that maybe my PIC16F1826 is not supported. From the literature that you sent me it looks like it is what I will nee to finish my design with the addition of some C code to help handle the Port B function and the sending sequence.
Only info I did find is this:
Note
This is a limited functionality demo version. You cannot save projects, save to ASM file the disassembled program. The trial period is 30 days.
I have asked them to email them to see if my issues with Flowcode can be answered.
Enamul why won`t flowcode indicate that the C code would not be followed when you can add code and no indications.
Enamul or Jac have you used the `Real PIC Simulator ?
John
-
- Valued Contributor
- Posts: 2045
- Joined: Wed Aug 27, 2008 10:31 pm
- Location: Netherlands
- Has thanked: 553 times
- Been thanked: 1081 times
- Contact:
Re: PORT B sending sequence
If you use an INPUT (I) icon to read Flowcode will switch the port to Input. When you use the OUTPUT (O) icon Flowcode will switch the port to output. You do not need to add C code for this.JLeith wrote:Jac do you know how I can then make Flowcode respond by making the Port B ports as Logic Low for Button action and then when it is time to send out the display change the bits to Logic High for sending out the display.
“Integrity is doing the right thing, even when no one is watching.”
― C.S. Lewis
― C.S. Lewis
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Hello Kersing,kersing wrote:If you use an INPUT (I) icon to read Flowcode will switch the port to Input. When you use the OUTPUT (O) icon Flowcode will switch the port to output. You do not need to add C code for this.JLeith wrote:Jac do you know how I can then make Flowcode respond by making the Port B ports as Logic Low for Button action and then when it is time to send out the display change the bits to Logic High for sending out the display.
I was trying this by setting the TRISB = 0xFF and 0x00 in a C code block but when I ran the simulation I could not see the state ?
Now I just heard back from JonnyW. that yes I should be able to back the C code and Flowcode should follow. I just sent a message to see how to add this to my code.
I have add my current Nov 26 version. I had so many copies I have to date them.
Hope you can help.
John
- Attachments
-
- Flowcode Scoreboard Nov 26.fcf
- (135.76 KiB) Downloaded 168 times
-
- Valued Contributor
- Posts: 2045
- Joined: Wed Aug 27, 2008 10:31 pm
- Location: Netherlands
- Has thanked: 553 times
- Been thanked: 1081 times
- Contact:
Re: PORT B sending sequence
TRIS sets (parts of) the port to input or output, that in itself is not visible in simulation. And as stated (by Jonny as well) Flowcode takes care of setting the port. If you take a look at the C code for a macro by selecting menu "Macro"/"Show as Source" you will see the C code generated. If you look at the source of the Switch_Input, the macro starts by setting one bit (A4) of port A to output. The input icon sets port B to input...JLeith wrote: I was trying this by setting the TRISB = 0xFF and 0x00 in a C code block but when I ran the simulation I could not see the state ?
“Integrity is doing the right thing, even when no one is watching.”
― C.S. Lewis
― C.S. Lewis
- JLeith
- Posts: 537
- Joined: Wed Nov 14, 2012 7:49 pm
- Location: British Columbia Canada
- Has thanked: 146 times
- Been thanked: 26 times
- Contact:
Re: PORT B sending sequence
Hello once again Kersing,
You are wonderful in the endless knowledge and I was able to follow the information. I think I fixed up the Port A and also found a error on my Port B setting. This time I set them a Hex values.
I wonder if you could look over the Flowcode and see if I have everything as expected. I uploaded a PDF to help explain the PortA Bit 4 is used as a Resistor / Capacitor timing to supply a 250 msec timer to control how long power is applied to the Mechanical Displays.
When I run it a Full Speed it is hard to see the LED's sending out the output is there a way to slow the Leds to show them in slow motion more or less. Even when the project runs at top speed.
Thank you for the help.
John
You are wonderful in the endless knowledge and I was able to follow the information. I think I fixed up the Port A and also found a error on my Port B setting. This time I set them a Hex values.
I wonder if you could look over the Flowcode and see if I have everything as expected. I uploaded a PDF to help explain the PortA Bit 4 is used as a Resistor / Capacitor timing to supply a 250 msec timer to control how long power is applied to the Mechanical Displays.
When I run it a Full Speed it is hard to see the LED's sending out the output is there a way to slow the Leds to show them in slow motion more or less. Even when the project runs at top speed.
Thank you for the help.
John
- Attachments
-
- Port A and B settings PDF.pdf
- (157.74 KiB) Downloaded 188 times
-
- Flowcode Scoreboard Nov 26.fcf
- (135.93 KiB) Downloaded 177 times