Great, but there's a tons of way to it more efficient. i was just trying to do something readable. Glad to know it's work as you wish. Hard to test when you're out of the city in a hotel room with a simple laptop.
BTW let's look at
pb=(PORTB>>5)& 3 ' keep only PORTB.5 and PORTB.6 bits
this line read the whole PORTB and shift bits 5 position to the right and finnaly do a bitwise AND with 3.
WHY... easier to read...and get only push buttons state
let's see how it's work.
Let's assume that PORTB=%11100000
after >>5 = we have %00000111
after & 3 we have %00000011 = 3 => both push buttons
Of course we an also use PB=PORTB & %01100000
and modify the Increase, decrease and Both constant definition too. That will save some code space and will do the same job. Or skip the Constant definition and place the expected value in the Select Case, or, or or , or...Posibility are endless.
Sometimes, there's a choice to do. Having a readable code or a less readable but really tight. It's case by case.
My last project use a 18F4620 and the full 64K of code. I spent many hours to shrink it as i can each time i add a new feature BUT I was out of codespace to implement new feature(on customer request)and i spend several hours to shrink everything by using PBP macro and do some workaround. Less readable but work as well as it suppose to.
Great to know it's working fine for you.
Have fun!
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks