Source code:
__sfr __at (0x2007) CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF &
_CP_OFF & _IESO_OFF & _FCMEN_OFF & _BOR_OFF;
unsigned char delay1val;
unsigned char delay2val;
void delay()
{
__asm
CLRF _delay1val
CLRF _delay2val
loop:
DECFSZ _delay1val,f
GOTO loop
DECFSZ _delay2val,f
GOTO loop
__endasm;
}
void main()
{
// make C0 as output
TRISC0 = 0;
do {
RC0 = 1;
delay();
RC0 = 0;
delay();
} while (1);
}
Makefile:
OBJS=demo1.o PRJ=demo1 CHIP=690 ARCH=pic14 PLATFORM=16f$(CHIP) LIBPATH=-I/usr/local/share/gputils/lkr -I/usr/local/share/sdcc/lib/pic LINKSCRIPTPATH=/usr/local/share/gputils/lkr LIBS=libsdcc.lib pic$(PLATFORM).lib libm.lib CC=sdcc -V -m$(ARCH) -p$(PLATFORM) LINKER=/usr/local/bin/gplink CFLAGS=--opt-code-speed --stack-auto --main-return --profile --debug-xtra --no-pcode-opt --funsigned-char --Werror CPPFLAGS= .c.o: $(CC) $(CFLAGS) -D_16F$(CHIP) -c $< $(PRJ).hex: $(OBJS) $(LINKER) -w -O1 -m -o $(PRJ).hex $(OBJS) $(LIBPATH) -f 0 $(LIBS) -s $(LINKSCRIPTPATH)/$(PLATFORM).lkr all: $(PRJ).hex clean: @echo "cleaning up all generated files..." @for obj in $(OBJS); do \ if [ -e $$obj ] ; then rm $$obj ; fi \ done @rm *.lst @if [ -e $(PRJ).cod ] ; then rm $(PRJ).cod ; fi @if [ -e $(PRJ).hex ] ; then rm $(PRJ).hex ; fi @echo "done." install: pk2cmd -PPIC$(PLATFORM) -M -F$(PRJ).hex pk2cmd -PPIC$(PLATFORM) -T
To build:
make demo1.hex
To install:
make install