Hi, Bracer
sorry for the "space" ...
For your leds ... place a series resistor : 220 Ohms as a minimum @ 6v supply ...
I know some do not use resistors ... but it creates RMW issues !!!
You MUST keep current inside the specified limits ( ABSOLUTE limits: 25 ma - 100 mA per full port ) , but do not rely on the internal limitation ... or you'll get surprises !!!
Alain
Last edited by Acetronics2; - 30th August 2010 at 09:38.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
WOW Acetronics....
You are so cool!
Completely works...wow...in just one line you have set 3 lights from PortB to light up...Code:Make PortA and PortB's 0~2 lights up. PORTA = PORTA | %00000111 PORTB = PORTB | %00000111 Make PortA and PortB's 0~2 lights Down. PORTA = PORTA & %11111000 PORTB = PORTB & %11111000
It suddenly makes this whole "High PortB.0" look barbaric!
I don't exactly know "How" you set it, but I did try to experiment, I went ahead and try to make the light goes from the outside two lights to the inside one light, basically:
But me...trying to "copy" your way, not knowing what I am doing, do this:Code:High PortB.0 High PortB.2 Low PortB.1 Pause 500 Low PortB.0 Low PortB.2 High PortB.1 Pause 500 Low PortB.0 Low PortB.2 Low PortB.1 Pause 500
Let's just say the lights acted weird, I have no idea what "|" in the code does either than it's probably "Or" ?Code:PORTA = PORTA | %00000101 PORTB = PORTB | %00000101 Pause 500 PORTA = PORTA & %00000010 PORTB = PORTB & %00000010 pause 500
Not to mention "&" either than C's "And" ?
But they are single and not in pairs...some sort of bit shifters ?
Must trying to understand this concept...one line to control all Port Outputs....so powerful...but so mysterious to me...
Anyway thanks Acetronics, I use a 470 ohm for the LEDs under +6V![]()
PORTA = PORTA | %00000101 = Read PORTA and set to 1 ports A0 and A2
PORTA = PORTA & %00000010 = Read PORTA and clear ports A0 and A2
you use " | " ( OR ) to SET portspins and & ( AND ) to clear them ... but no mix allowed
you can try ...
see your manual " Bitwise Operators " section $4.16.17Code:PORTA = PORTA | %00000101 PORTB = PORTB | %00000101 . . . . Subroutine: PORTA = PORTA ^ %00000111 ' FLIPS the bits with a " 1 " PORTB = PORTB ^ %00000111 pause 500 GOTO Subroutine
Alain
Last edited by Acetronics2; - 30th August 2010 at 19:44.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
Thank you Acetronics, thanks to you, I now understand everything I need to understand for my Build from scratch Tricorder Project.
This is the note I have compiled based on what you have explained.
'Make them all outputs, Remember Pin 4, PortA.5 will always be Input Only
'And Pin 3, PortA.4 needs a pull up resistor.
'Understand that these two lines will make High, all Pins
'meaning the LEDs will ALL light up.
TRISA = 0 'Set all PortA Pins as Outputs
TRISB = 0 'Set all PortB Pins as Outputs
'Make All PortA and PortB's lights Down, the "&" here means "Clear".
PORTA = PORTA & %00000000
PORTB = PORTB & %00000000
Make PortA and PortB's .0 lights up, the "|" here means "Set".
PORTA = PORTA | %00000001
PORTB = PORTB | %00000001
[This is a powerful concept Bracer, with this you no longer need to do the:
High PortB.0 crap.
A single line to clear all and a single line to set all, the ONLY THING YOU MUST
take note is to line up your LEDs from PortB.7 to PortB.0 in your device instead
of 0 to 7, this is because as you can see, this one line code is backward, setting
the last digit to 1 actually set Port*.0 and %10000000 sets Port*.7 to high.
So to make it easier for you to visualize your
lights animations [I'm repeating myself here], set your LEDs on your device from
Port*.7 [Or whatever is the highest port number you use for output] to lowest.
]
[This also means that setting:
PORTA = PORTA | %00100000
is useless because PortA.5 [Pin 4] can only be use for input detection,
setting it to high means nothing.
]
You can see my Tricorder project here:
http://www.bracercom.com/wip/content...der/index.html
It's still very much in WIP but I will be sure to give you credit when I've come to the electronic part of the Tricorder.
Last edited by Bracer; - 31st August 2010 at 09:43.
************************************************** ***********************
Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
************************************************** ***********************
IF there is the word "Problem" in your question ...
certainly the answer is " RTFM " or " RTFDataSheet " !!!
*****************************************
NOKIA graphic screens with 16F628a ?
Wow...I have like no idea how...
I wouldn't even know how to begin with that.
Last edited by Bracer; - 3rd September 2010 at 00:13.
Bookmarks