<?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_TIMER0</id>
		<title>CONFIG TIMER0 - 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_TIMER0"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_TIMER0&amp;action=history"/>
		<updated>2026-05-30T12:46:49Z</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_TIMER0&amp;diff=532&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt; =  Configure TIMER0.  &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_TIMER0&amp;diff=532&amp;oldid=prev"/>
				<updated>2013-02-08T11:32:05Z</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 TIMER0.  &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;New page&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 TIMER0.&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;
CONFIG TIMER0 = COUNTER , EDGE=RISING/FALLING , CLEAR_TIMER = 1|0 [,CONFIGURATION=NAME]&lt;br /&gt;
&lt;br /&gt;
CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024 [,CONFIGURATION=NAME]&lt;br /&gt;
&lt;br /&gt;
CONFIG TIMER2&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;= TIMER | PWM , ASYNC=ON |OFF,PRESCALE = 1 | 8 | 32 | 64 | 128 | 256 | 1024 ,COMPARE = CLEAR | SET | TOGGLE | DISCONNECT ,PWM = ON | OFF ,COMPARE_PWM = CLEAR_UP| CLEAR_DOWN | DISCONNECT ,CLEAR_TIMER = 1|0 [,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;
TIMER0 is an 8 bit counter. See the hardware description of TIMER0.&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 configured as a COUNTER:&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;21%&amp;quot; style=&amp;quot;width: 123px; 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: 472px; 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.&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;
When configured as a TIMER:&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;17%&amp;quot; style=&amp;quot;width: 99px; 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: 496px; 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;
|}&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;
Note that some new AVR chips have different pre scale values. You can use these.&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;
[[File:Notice.jpg|left|Notice.jpg]]&amp;amp;nbsp;Notice that the Help was written with the AT90S2313 and AT90S8515 timers in mind.&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;
When you use the CONFIG TIMER0 statement, the mode is stored by the compiler and the TCCRO register is set.&lt;br /&gt;
&lt;br /&gt;
When you use the STOP TIMER0 statement, the TIMER is stopped.&lt;br /&gt;
&lt;br /&gt;
When you use the START TIMER0 statement, the TIMER TCCR0 register is loaded with the last value that was configured with the CONFIG TIMER0 statement.&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;
So before using the&amp;amp;nbsp;[[START]]&amp;amp;nbsp;and&amp;amp;nbsp;[[STOP]]&amp;amp;nbsp;TIMER0 statements, use the CONFIG statement first.&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;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 : timer0.bas&lt;br /&gt;
'copyright : (c) 1995-2005, MCS Electronics&lt;br /&gt;
'purpose : shows how to use TIMER0 related statements&lt;br /&gt;
'micro : 90S2313&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;2313def.dat&amp;quot; ' specify the used micro&lt;br /&gt;
$crystal = 8000000 ' 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;
'First you must configure the timer to operate as a counter or as a timer&lt;br /&gt;
'Lets configure it as a COUNTER now&lt;br /&gt;
'You must also specify if it will count on a rising or falling edge&lt;br /&gt;
 &lt;br /&gt;
Config Timer0 = Counter , Edge = Rising&lt;br /&gt;
'Config Timer0 = Counter , Edge = falling&lt;br /&gt;
'unremark the line aboven to use timer0 to count on falling edge&lt;br /&gt;
 &lt;br /&gt;
'To get/set the value from the timer access the timer/counter register&lt;br /&gt;
'lets reset it to 0&lt;br /&gt;
Tcnt0 = 0&lt;br /&gt;
 &lt;br /&gt;
Do&lt;br /&gt;
Print Tcnt0&lt;br /&gt;
Loop Until Tcnt0 &amp;gt;= 10&lt;br /&gt;
'when 10 pulses are count the loop is exited&lt;br /&gt;
'or use the special variable TIMER0&lt;br /&gt;
Timer0 = 0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'Now configire it as a TIMER&lt;br /&gt;
'The TIMER can have the systemclock as an input or the systemclock divided&lt;br /&gt;
'by 8,64,256 or 1024&lt;br /&gt;
'The prescale parameter excepts 1,8,64,256 or 1024&lt;br /&gt;
Config Timer0 = Timer , Prescale = 1&lt;br /&gt;
 &lt;br /&gt;
'The TIMER is started now automaticly&lt;br /&gt;
'You can STOP the timer with the following statement :&lt;br /&gt;
Stop Timer0&lt;br /&gt;
 &lt;br /&gt;
'Now the timer is stopped&lt;br /&gt;
'To START it again in the last configured mode, use :&lt;br /&gt;
Start Timer0&lt;br /&gt;
 &lt;br /&gt;
'Again you can access the value with the tcnt0 register&lt;br /&gt;
Print Tcnt0&lt;br /&gt;
'or&lt;br /&gt;
Print Timer0&lt;br /&gt;
'when the timer overflows, a flag named TOV0 in register TIFR is set&lt;br /&gt;
'You can use this to execute an ISR&lt;br /&gt;
'To reset the flag manual in non ISR mode you must write a 1 to the bit position&lt;br /&gt;
'in TIFR:&lt;br /&gt;
Set Tifr.1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'The following code shows how to use the TIMER0 in interrupt mode&lt;br /&gt;
'The code is block remarked with '( en ')&lt;br /&gt;
 &lt;br /&gt;
'(&lt;br /&gt;
 &lt;br /&gt;
'Configute the timer to use the clock divided by 1024&lt;br /&gt;
Config Timer0 = Timer , Prescale = 1024&lt;br /&gt;
 &lt;br /&gt;
'Define the ISR handler&lt;br /&gt;
On Ovf0 Tim0_isr&lt;br /&gt;
'you may also use TIMER0 for OVF0, it is the same&lt;br /&gt;
 &lt;br /&gt;
Enable Timer0 ' enable the timer interrupt&lt;br /&gt;
Enable Interrupts 'allow interrupts to occur&lt;br /&gt;
Do&lt;br /&gt;
'your program goes here&lt;br /&gt;
Loop&lt;br /&gt;
 &lt;br /&gt;
'the following code is executed when the timer rolls over&lt;br /&gt;
Tim0_isr:&lt;br /&gt;
Print &amp;quot;*&amp;quot;;&lt;br /&gt;
Return&lt;br /&gt;
 &lt;br /&gt;
')&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>