Tracy Smith says
Here are a couple of ideas for getting 1<<TestBit (10 cycles):2^n: clr W snb TestBit.2 mov W, #%11111100 add TestBit, W mov W, ++TestBit snb TestBit.1 or TestBit, W inc TestBit snb C swap TestBit ......... another way (7 cycles [including the call]) two_to_n: and W, #7 add PC, W retw #1 retw #2 retw #4 retw #8 retw #$10 retw #$20 retw #$40 retw #$80 ............ or probably more to the point mov W, Rb mov portb_shadow, W sb TestBit.2 swap portb_swadow sb TestBit.0 rl portb_shadow mov W, #%10000000 sb TestBit.1 mov W, #%00100000 and portb_shadow, W snb Z jmp _the_bit_is_set .lo
Kevin Blain says:
clrf mask ; empty the mask ; a file called bit contains the 0 to 7 value of the bit position inc bit ; make it 1 to 8, so decfsz works nicely setb C ; set the carry flag. This will be rotated in 'bit' times :loop rl mask decsz bit ; skip out after 'bit' times. jmp loop ..... ; rest of code... Of course, it would be good to ensure that bit is not greater than 7 when entering the routine.
see: http://www.infosite.com/%7Ejkeyzer/piclist/1999/Nov/0018.html
See also:
| file: /Techref/scenix/lib/math/bit/setbit_sx.htm, 1KB, , updated: 2004/6/10 14:40, local time: 2012/5/25 14:55,
38.107.179.233:LOG IN |
| ©2012 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://www.piclist.com/techref/scenix/lib/math/bit/setbit_sx.htm"> SX Microcontroller Bit Math Method - Setting bit number X</A> |
| Did you find what you needed? |
|
The PICList shop now offers mugs, steins and... T-Shirts!!! |
Robotics nuts!Check out http://users.frii.com/dlc/robotics/projects/botproj.htm from Dennis Clark. This guy ROCKS! He has made (and sells but also releases code, docs, etc...) for a number of cool little robotic modules including whiskers, IR proximity detect and remote control, Sonar proximity detect, PWM, Servo, compass. Most of these use the little PIC 12C508 controller which costs basically nothing and is soooo tiny.The 4 servos, 2400 baud serial servo controller is a wonder of magic and he sells the programmed chip for $8. Wow! |
.