|
© MCS Electronics, 1995-2007 |
'suited for demo |
: yes |
'commercial addon needed |
: no |
'----------------------------------------------------------------------------- |
|
------------ |
|
$regfile = "2313def.dat" |
' specify the used |
micro |
' used crystal |
$crystal = 8000000 |
frequency |
' use baud rate |
$baud = 19200 |
$hwstack = 32 |
' default use 32 |
for the hardware stack |
' default use 10 |
$swstack = 10 |
for the SW stack |
' default use 40 |
$framesize = 40 |
for the frame space |
|
'First you must configure the timer to operate as a counter or as a timer 'Lets configure it as a COUNTER now
'You must also specify if it will count on a rising or falling edge
Config Timer0 = Counter , Edge = Rising 'Config Timer0 = Counter , Edge = falling
'unremark the line aboven to use timer0 to count on falling edge
'To get/set the value from the timer access the timer/counter register 'lets reset it to 0
Tcnt0 = 0
Do
Print Tcnt0
Loop Until Tcnt0 >= 10
'when 10 pulses are count the loop is exited 'or use the special variable TIMER0
Timer0 = 0
'Now configire it as a TIMER
'The TIMER can have the systemclock as an input or the systemclock divided 'by 8,64,256 or 1024
'The prescale parameter excepts 1,8,64,256 or 1024
Config Timer0 = Timer , Prescale = 1
'The TIMER is started now automaticly
'You can STOP the timer with the following statement :
Stop Timer0
'Now the timer is stopped
'To START it again in the last configured mode, use :
Start Timer0
'Again you can access the value with the tcnt0 register
Print Tcnt0 'or
Print Timer0
'when the timer overflows, a flag named TOV0 in register TIFR is set 'You can use this to execute an ISR
'To reset the flag manual in non ISR mode you must write a 1 to the bit position
'in TIFR:
Set Tifr.1