summaryrefslogtreecommitdiff
path: root/macros/Hardware/AVR/AVRTimerSetup.sci
blob: 55fd55fa86dc8b326ebc9296d4db6c91d16b4c4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright (C) 2017 - IIT Bombay - FOSSEE
//
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution.  The terms
// are also available at
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
// Organization: FOSSEE, IIT Bombay
// Email: toolbox@scilab.in

function AVRTimerSetup(timer,prescaler,clock_source)
//Function to setup Timers in ATmega16
//
//Parameters:
//     timer : integer, from 0 to 2
//     prescaler : integer.
//     clock_source : integer, 0 (for internal) or 1 (for external)
//
//Descrpition:
//      This function tells the micro controller which clock source you will be using.
//      The timer value and prescaler value passed in this function setup the timer as per
//      your requirement.
//
//	timer can take values-
//	<itemizedlist>
//      <listitem><para>0   -> for timer0</para></listitem>
//      <listitem><para>1   -> for timer1</para></listitem>
//      <listitem><para>2   -> for timer2</para></listitem>
//      </itemizedlist>
//
//	prescaler can take values-
//	<itemizedlist>
//	<listitem><para>1 for no prescaling i.e clock will run at max 16Hz frequency</para></listitem>
//      <listitem><para>8 for prescaling clock by 8 i.e new clock frequency will be (clk/8)</para></listitem>
//      <listitem><para>64 for prescaling clock by 64 i.e new clock frequency will be (clk/64)</para></listitem>
//      <listitem><para>256 for prescaling clock by 256 i.e new clock frequency will be (clk/256)</para></listitem>
//      <listitem><para>1024 for prescaling clock by 1024 i.e new clock frequency will be (clk/1024)</para></listitem>
//      </itemizedlist>
//
// This is curretly dummy function. It provides no functionality but is required 
// for providing support for generating C code for AVR.
//
//Example
//    AVRTimerSetup(0,64,0);  //This function will select timer0 with timer running as per internal clock source and prescaled by 64.
//See also
//     AVRGetTimerValues
//
//Authors
//     Ashish Kamble
//

if(timer>=3) then
disp("Error : Invalid input argument ''timer'' in AVRTimerSetup function.");
end

if(~((prescaler==1)|(prescaler==8)|(prescaler==64)|(prescaler==256)|(prescaler==1024))) then 
disp("Error : Invalid input argument ''prescaler'' in AVRTimerSetup function.");
end

if(clock_source>=2) then
disp("Error : Invalid input argument ''clock_source'' in AVRTimerSetup function.");
end
endfunction