
Originally Posted by
Darrel Taylor
Oh Yeah!
Very nice Bruce.
Now that's going to be hard to beat.
If you don't hear from me for a month.
You'll know what happened.

I just checked on my '628A on my breadboard...about a ba-zillion times...
I set up code/hardware to do nothing but RESET, and put Port B onto a bank of LEDs, Vdd on the other side of the LED.
EACH time, Port B came up ZERO...no LEDs lit up, until I set a TRIS bit for output.
So, my submission...
Coming in at 12 bytes...
Code:
list p=16F628A
#include "P16F628A.inc"
errorlevel -302
__CONFIG _CP_OFF & _BODEN_ON & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _LVP_OFF & _INTOSC_OSC_NOCLKOUT
; clrf PORTB ; clear port - not required on my breadboard, might be different on others
bsf STATUS,RP0 ; Bank 1
bcf TRISB,0 ; RB0 = output
bcf OPTION_REG,0 ; 1:64 prescaler to WDT
Left
sleep ; go to sleep for 64 * 18mS ~1 second
rlf TRISB,F ; rotate bit across portb from lsb to msb
btfsc TRISB,7
goto Left
Right
sleep ; go to sleep for 64 * 18mS ~1 second
rrf TRISB,F ; rotate bit across Portb from msb to lsb
btfsc TRISB,0
goto Right
goto Left ; now rotate back to the left.
End
Somebody else check this out and see what happens.
As I stated, maybe it's my breadboard, maybe it's my 628A (I've only got 1 left), maybe it's the rise time on my PSU.
EDIT: Datasheet says that the port registers come up in an unknown state. Apparently, in this case, I now know my state...
Bookmarks