**************************************************************** '* Name : NewToyShop.BAS * '* Author : MEL4853 * '* Notice : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 1/12/2010 * '* Version : 1.0 * '* Notes : 12F683 with 2 74hc595 * '* : * '**************************************************************** Include "modedefs.bas" INCLUDE "DT_INTS-14.bas" ' Base Interrupt System INCLUDE "ReEnterPBP.bas" ' Include if using PBP interrupts define osc 8 define DEBUGIN_REG GPIO define DEBUGIN_BIT 3 define DEBUGIN_BAUD 2400 define DEBUGIN_MODE 1 Dpin var GPIO.2 'Data pin Cpin var GPIO.0 'Clock pin Lpin var GPIO.1 'Latch pin Dapin var GPIO.4 Clpin var GPIO.5 serialin var GPIO.3 cont con $A0 addr var word CMCON0=$07 'Shut off comparators ANSEL=$00 'Set all digital ADCON0=$00 TRISIO=$08 'Set all to outputs INTCON.7=1 IOC=$08 'enable interrupts on input3 GPIO=$00 b1 var byte b2 var byte chipnum var byte thischip var byte ASM INT_LIST macro ; IntSource, Label, Type, ResetFlag? INT_Handler GPC_INT, _ToggleLED1, PBP, yes endm INT_CREATE ; Creates the interrupt processor INT_ENABLE GPC_INT ; enable external (INT) interrupts ENDASM Start: addr=0 loop: I2Cread dapin,clpin,cont,addr,[b1,b2] if b2=$FF then goto Start for chipnum=1 to 2 lookup2 chipnum,[b2,b1],thischip shiftout dpin,cpin,MSBFIRST,[thischip] next chipnum pulsout lpin,10 addr=addr+2 pause 600 goto loop '---[INT - interrupt handler]--------------------------------------------------- ToggleLED1: addr=0 NEXTSTEP: debugin[#b1,#b2] i2cwrite dapin,clpin,cont,addr,[b1,b2] ; Store in eeprom pause 10 ; Must wait between writes addr=addr+2 ; Next eeprom loc if b2 <> $FF then nextstep ; FF means end of data low serialin Finish: @ INT_RETURN end