'******************************************************************************* ' ' Copyright (c) 2008 Steve Vigneau ' ' This software is provided 'as-is', without any express or implied ' warranty. In no event will the authors be held liable for any damages ' arising from the use of this software. ' ' Permission is granted to anyone to use this software for any purpose, ' including commercial applications, and to alter it and redistribute it ' freely, subject to the following restrictions: ' ' 1. The origin of this software must not be misrepresented; you must not ' claim that you wrote the original software. If you use this software ' in a product, an acknowledgment in the product documentation would be ' appreciated but is not required. ' ' 2. Altered source versions must be plainly marked as such, and must not be ' misrepresented as being the original software. ' ' 3. This notice may not be removed or altered from any source ' distribution. ' '******************************************************************************* ' ' This is for a PIC12F629 with config 0x3FD4. ' ' Changes state of GP0, preloaded with 0, every time GP4 changes, but only ' if GP5 is high. ' '******************************************************************************* program synctest1 sub procedure interrupt() if GPIO.5 = 1 then ' Only if GP5 is high. if GPIO.0 <> 0 then ' Change GP0. GPIO.0 = 0 else GPIO.0 = 1 end if end if INTCON.GPIF = 0 ' Clear the interrupt on change flag. end sub main: CMCON = %111 ' Turn off comparitors. TRISIO = %110000 ' GP5:GP4 are inputs. GPIO.0 = 0 ' Preload GP0 to be low. IOC = %00010000 ' Interrupt on change of GP4 INTCON = %10001000 ' Enable global interrupts and interrupt on change. while TRUE nop wend end.