PDA

View Full Version : Led as a sensor ?



Kman
- 27th May 2007, 17:05
Why is He using TMR0 in this code?

'************************************************* ***************
'* Name : LedSensor.BAS *
'* Author : Kifo *
'* Notice : Copyright (c) 2004 kifo *
'* : All Rights Reserved *
'* Date : 15.01.2004 *
'* Version : 1.0 *
'* Notes : *
'* : *
'************************************************* ***************

LedAnoda VAR GPIO.0
LedKatoda VAR GPIO.1

'************************************************* ***************


GPIO = 0
cmcon = 7 ' comparator (off , set as digital IO )
TRISIO = %00000000 ' set GP 1,2,3,4,5 as outputs
'WPU = %00110000 'pin gp3, gp4 - pull up enabled
'option_reg.7 = 0 'global GPPU bit - za pull up enabled = 0
'ANSEL = %00010001 'GP0 analog input , Fosc/8 ( A/D konverzija )
'ADCON0 = %10000001 'chanel 0, stop AD, A/D On, Vdd = ref
'ANSEL=0 'digital IO " samo za 12F675 "

'************************************************* ***************
INTCON = %00000000 ' Onemoguci prekide
INTCON.2 = 0 ' brisanje flega prekoracenja Tmr0
option_reg = %10000111 ' timer 0 prescaler rate 1:256

'************************************************* **************



Main:
Low LedAnoda ' inverzni napon na led
High LedKatoda ' led ne svijetli

Input LedKatoda ' high Z na katodi led diode

tmr0 = 0 ' reset timer 0

WaitLow: IF TMR0 > 50 Then GoTo ukljuci ' tu određujemo razinu osvjetljenosti
IF LedKatoda = 1 Then GoTo WaitLow ' čekamo kad padne nivo na nulu
GoTo main ' ako ima dosta svjetla vraćamo se na main

ukljuci: High LedAnoda ' ako nema dosta svjetla upalimo led diodu
Low LedKatoda '

Pause 400 ' led svjetli 400ms

GoTo main


End

mister_e
- 27th May 2007, 17:44
time base, free-running timer, to evaluate since how much time LedKatoda pin is high.

skimask
- 28th May 2007, 07:57
http://web.ndak.net/jdgrotte/touchsensor/touchsensor.htm