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
No comments:
Post a Comment