<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_TIMER1</id>
		<title>CONFIG TIMER1 - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_TIMER1"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_TIMER1&amp;action=history"/>
		<updated>2026-05-30T12:47:07Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=CONFIG_TIMER1&amp;diff=533&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt; =  Configure TIMER1.  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  = &lt;span class=&quot;f...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_TIMER1&amp;diff=533&amp;oldid=prev"/>
				<updated>2013-02-08T11:37:40Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =  Configure TIMER1.  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  = &amp;lt;span class=&amp;quot;f...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Configure TIMER1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Syntax&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;CONFIG TIMER1&amp;lt;/span&amp;gt;&amp;amp;nbsp;= COUNTER | TIMER | PWM ,&lt;br /&gt;
&lt;br /&gt;
EDGE=RISING | FALLING , PRESCALE= 1|8|64|256|1024 ,&lt;br /&gt;
&lt;br /&gt;
NOISE_CANCEL=0 |1, CAPTURE_EDGE = RISING | FALLING ,&lt;br /&gt;
&lt;br /&gt;
CLEAR_TIMER = 1|0,&lt;br /&gt;
&lt;br /&gt;
COMPARE_A = CLEAR | SET | TOGGLE | DISCONNECT ,&lt;br /&gt;
&lt;br /&gt;
COMPARE_B = CLEAR | SET | TOGGLE | DISCONNECT ,&lt;br /&gt;
&lt;br /&gt;
PWM = 8 | 9 10 ,&lt;br /&gt;
&lt;br /&gt;
COMPARE_A_PWM = CLEAR_UP| CLEAR_DOWN | DISCONNECT&lt;br /&gt;
&lt;br /&gt;
COMPARE_B_PWM = CLEAR_UP| CLEAR_DOWN | DISCONNECT&lt;br /&gt;
&lt;br /&gt;
[,CONFIGURATION=NAME]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Remarks&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
The TIMER1 is a 16 bit counter. See the hardware description of TIMER1.&lt;br /&gt;
&lt;br /&gt;
It depends on the chip if COMPARE_B is available or not.&lt;br /&gt;
&lt;br /&gt;
Some chips even have a COMARE_C.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The syntax shown above must be on one line. Not all the options need to be selected.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is the effect of the various options.&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;604&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;19%&amp;quot; style=&amp;quot;width: 111px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
EDGE&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 484px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
You can select whether the TIMER will count on the falling or rising edge. Only for COUNTER mode.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;19%&amp;quot; style=&amp;quot;width: 111px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
CAPTURE_ EDGE&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 484px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
You can choose to capture the TIMER registers to the INPUT CAPTURE registers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With the CAPTURE_EDGE = FALLING/RISING, you can specify to capture on the falling or rising edge of pin ICP&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;19%&amp;quot; style=&amp;quot;width: 111px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
NOISE_ CANCELING&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 484px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
To allow noise canceling you can provide a value of 1.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;19%&amp;quot; style=&amp;quot;width: 111px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
PRESCALE&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 484px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The TIMER is connected to the system clock in this case. You can select the division of the system clock with this parameter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Valid values are 1 , 8, 64, 256 or 1024&lt;br /&gt;
&lt;br /&gt;
PRESCALE can't be used in COUNTER mode.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The TIMER1 also has two compare registers A and B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the timer value matches a compare register, an action can be performed&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;604&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;16%&amp;quot; style=&amp;quot;width: 93px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
COMPARE_A&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 502px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The action can be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SET will set the OC1X pin&lt;br /&gt;
&lt;br /&gt;
CLEAR will clear the OC1X pin&lt;br /&gt;
&lt;br /&gt;
TOGGLE will toggle the OC1X pin&lt;br /&gt;
&lt;br /&gt;
DISCONNECT will disconnect the TIMER from output pin OC1X&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the TIMER can be used in PWM mode.&lt;br /&gt;
&lt;br /&gt;
You have the choice between 8, 9 or 10 bit PWM mode&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can specify if the counter must count UP or down after a match to the compare registers&lt;br /&gt;
&lt;br /&gt;
Note that there are two compare registers A and B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;604&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;26%&amp;quot; style=&amp;quot;width: 153px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
PWM&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 442px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Can be 8, 9 or 10.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;26%&amp;quot; style=&amp;quot;width: 153px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
COMPARE_A_PWM&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;100%&amp;quot; style=&amp;quot;width: 442px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
PWM compare mode. Can be CLEAR_UP or CLEAR_DOWN&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using COMPARE_A, COMPARE_B, COMPARE_A_PWM or COMPARE_B_PWM will set the corresponding pin for output. When this is not desired you can use the alternative NO_OUTPUT version that will not alter the output pin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example&amp;amp;nbsp;: COMPARE_A_NO_OUTPUT , COMPARE_A_PWM NO_OUTPUT&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
CONFIGURATION is optional. When you add configuration=mysetting, you can use this setting when you start the timer&amp;amp;nbsp;: START TIMER0 , mysetting&lt;br /&gt;
&lt;br /&gt;
If you have multiple settings, you can start the timer with these different settings.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
'name : timer1.bas&lt;br /&gt;
'copyright : (c) 1995-2005, MCS Electronics&lt;br /&gt;
'purpose : show using Timer1&lt;br /&gt;
'micro : 90S8515&lt;br /&gt;
'suited for demo : yes&lt;br /&gt;
'commercial addon needed : no&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
$regfile = &amp;quot;8515def.dat&amp;quot; ' specify the used micro&lt;br /&gt;
$crystal = 4000000 ' used crystal frequency&lt;br /&gt;
$baud = 19200 ' use baud rate&lt;br /&gt;
$hwstack = 32 ' default use 32 for the hardware stack&lt;br /&gt;
$swstack = 10 ' default use 10 for the SW stack&lt;br /&gt;
$framesize = 40 ' default use 40 for the frame space&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Dim W As Word&lt;br /&gt;
 &lt;br /&gt;
'The TIMER1 is a versatile 16 bit TIMER.&lt;br /&gt;
'This example shows how to configure the TIMER&lt;br /&gt;
 &lt;br /&gt;
'First like TIMER0 , it can be set to act as a TIMER or COUNTER&lt;br /&gt;
'Lets configure it as a TIMER that means that it will count and that&lt;br /&gt;
'the input is provided by the internal clock.&lt;br /&gt;
'The internal clock can be divided by 1,8,64,256 or 1024&lt;br /&gt;
Config Timer1 = Timer , Prescale = 1024&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'You can read or write to the timer with the COUNTER1 or TIMER1 variable&lt;br /&gt;
W = Timer1&lt;br /&gt;
Timer1 = W&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'To use it as a COUNTER, you can choose on which edge it is trigereed&lt;br /&gt;
Config Timer1 = Counter , Edge = Falling&lt;br /&gt;
'Config Timer1 = Counter , Edge = Rising&lt;br /&gt;
 &lt;br /&gt;
'Also you can choose to capture the TIMER registers to the INPUT CAPTURE registers&lt;br /&gt;
'With the CAPTURE EDGE = , you can specify to capture on the falling or rising edge of&lt;br /&gt;
'pin ICP&lt;br /&gt;
Config Timer1 = Counter , Edge = Falling , Capture_Edge = Falling&lt;br /&gt;
'Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising&lt;br /&gt;
 &lt;br /&gt;
'To allow noise canceling you can also provide :&lt;br /&gt;
Config Timer1 = Counter , Edge = Falling , Capture_Edge = Falling , Noise_Cancel = 1&lt;br /&gt;
 &lt;br /&gt;
'to read the input capture register :&lt;br /&gt;
W = Capture1&lt;br /&gt;
'to write to the capture register :&lt;br /&gt;
Capture1 = W&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'The TIMER also has two compare registers A and B&lt;br /&gt;
'When the timer value matches a compare register, an action can be performed&lt;br /&gt;
Config Timer1 = Counter , Edge = Falling , Compare_A = Set , Compare_B = Toggle , Clear_Timer = 1&lt;br /&gt;
'SET , will set the OC1X pin&lt;br /&gt;
'CLEAR, will clear the OC1X pin&lt;br /&gt;
'TOGGLE, will toggle the OC1X pin&lt;br /&gt;
'DISCONNECT, will disconnect the TIMER from output pin OC1X&lt;br /&gt;
'CLEAR TIMER will clear the timer on a compare A match&lt;br /&gt;
 &lt;br /&gt;
'To read write the compare registers, you can use the COMPARE1A and COMPARE1B variables&lt;br /&gt;
Compare1a = W&lt;br /&gt;
W = Compare1a&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'And the TIMER can be used in PWM mode&lt;br /&gt;
'You have the choice between 8,9 or 10 bit PWM mode&lt;br /&gt;
'Also you can specify if the counter must count UP or down after a match&lt;br /&gt;
'to the compare registers&lt;br /&gt;
'Note that there are two compare registers A and B&lt;br /&gt;
Config Timer1 = Pwm , Pwm = 8 , Compare_A_Pwm = Clear_Up , Compare_B_Pwm = Clear_Down , Prescale = 1&lt;br /&gt;
 &lt;br /&gt;
'to set the PWM registers, just assign a value to the compare A and B registers&lt;br /&gt;
Compare1a = 100&lt;br /&gt;
Compare1b = 200&lt;br /&gt;
 &lt;br /&gt;
'Or for better reading :&lt;br /&gt;
Pwm1a = 100&lt;br /&gt;
Pwm1b = 200&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br/&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:BASCOM Language Reference]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>