Hi Folks,
currently I'm trying adapt this touch switch code which I found in code examples (http://www.picbasic.co.uk/forum/showthread.php?t=2671)
The code is works fine as is, but I need to modify it to respond only to one input pin GPIO.0 I don't need three inputs.
Here is my modified code (not working):
Code:
'   Few cents touch sensor
'   ======================
'   Using : PIC12F683
'    
'   Circuit is quite simple. One pin(GP4) is used as a signal generator.
'   This pin send signal to all "virtual push button" (GPIO<2:0>)
'   via 3 X 22K resistor. The touch sensor could be almost everything 
'   conductive.  
'
'   Once a sensor is touched, the program will blink a LED as follow
'                            GPIO.0 => 1 Blink
'                            GPIO.1 => 2 Blink
'                            GPIO.2 => 3 Blink


'   PIC config and programming mode
'   ===============================
#CONFIG  
cfg = _INTOSCIO
cfg&= _WDT_OFF                 
cfg&= _PWRTE_OFF
cfg&= _MCLRE_OFF
cfg&= _CP_OFF
cfg&= _CPD_OFF
cfg&= _BOD_OFF
cfg&= _IESO_OFF
cfg&= _FCMEN_OFF
 __CONFIG cfg
#ENDCONFIG

DEFINE OSC 4     ; Use a 4 MHZ internal clock 

ANSEL = 0   
CMCON0 = 7 
TRISIO = %000001  ;gpio0 input rest output

'   I/O Alias definition
'   ====================
    '
    LED        VAR GPIO.5
    Generator  var GPIO.4
    
'   Hardware definition
'   ===================
    '                           
    
'   Variable definition
'   ===================
    '
    Sensor var byte
    Looop   var byte

'   EEPROM assignement
'   ==================
    '
    data @3,3,0,2,1 ' table to convert 'Sensor' variable result to according
                    ' LED blink. See Result list bellow
    
'   Software/hardware initialisation
'   ================================
    '
    led = 0
    generator = 0
    
            
Start:
    ' Short explanation of the whole thing.
    '       1. Send a high level to all sensor input => GPIO<2:0>
    '       2. Read GPIO port 
    '       3. Send a low level to all sensor input
    '       4. Keep only GPIO<2:0> bits
    '       5. Test result
    '
    ' If no sensor has been touched, the result will be 7 => 0000 0111, case
    ' else, the body capacitance will introduce sufficient delay between
    ' step 1 and 2 wich will keep the according bit to 0.  
    '
    ' Results will be as follow
    '               NoSensor => 0000 0111 => 7
    '               GPIO.0   => 0000 0110 => 6
    '               GPIO.1   => 0000 0101 => 5
    '               GPIO.2   => 0000 0011 => 3
    '
    repeat
        Generator = 1       ' enable sensor power
        Sensor = GPIO       ' read sensor
        Generator = 0       ' disable sensor power
        Sensor = Sensor & %000001 ' keep only Sensor bits HERE I CHANGE VALUE FROM 7 (0111) TO 1 (0001)
                                   
        until Sensor != %000001   ' redo the test untill one sensor is touch HERE I CHANGE VALUE FROM 7 (0111) TO 1 (0001)
    '
    ' Now we will flash an LED to confirm wich sensor has been touch
    '                      GPIO.0 => 1 Blink
    '                      GPIO.1 => 2 Blink
    '                      GPIO.2 => 3 Blink
    '
    read sensor,looop ' convert result to blink
    repeat
        LED = 1
        PAUSE 200
        lED = 0
        PAUSE 200
        looop = looop - 1
        until looop = 0

    goto start ' do it again...
What I overlooked in the code? Can someone point me when I'm wrong? Thanks.