aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_ioctrl.c
blob: daab322628fdbae52eae80fa9600cb92dae19899 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//
// Date init       14.12.2004
//
// Revision date   $Date:: 14-11-07 12:40                                    $
//
// Filename        $Workfile:: c_ioctrl.c                                    $
//
// Version         $Revision:: 1                                             $
//
// Archive         $Archive:: /LMS2006/Sys01/Main_V02/Firmware/Source/c_ioct $
//
// Platform        C
//


#include  "stdconst.h"
#include  "modules.h"
#include  "c_ioctrl.iom"
#include  "c_ioctrl.h"
#include  "d_ioctrl.h"

static    IOMAPIOCTRL   IOMapIOCtrl;
static    VARSIOCTRL    VarsIOCtrl;
  
const     HEADER  cIOCtrl = 
{
  0x00060001L,
  "IOCtrl",
  cIOCtrlInit,
  cIOCtrlCtrl,
  cIOCtrlExit,
  (void *)&IOMapIOCtrl,
  (void *)&VarsIOCtrl,
  (UWORD)sizeof(IOMapIOCtrl),
  (UWORD)sizeof(VarsIOCtrl),
  0x0000                      //Code size - not used so far
};


void      cIOCtrlInit(void* pHeader)
{
  dIOCtrlSetPower(0);
  dIOCtrlInit();
}


void     cIOCtrlCtrl(void)
{
  switch(IOMapIOCtrl.PowerOn)
  {
    case POWERDOWN:
    {
      dIOCtrlSetPower((POWERDOWN>>8));
    }
    break;
    case BOOT:
    {
      dIOCtrlSetPower((UBYTE)(BOOT>>8));
      dIOCtrlSetPwm((UBYTE)BOOT);
    }
    break;
    default:
    {
      /* No need to change the default value      */
      /* if value is boot or reset it should come */
      /* back from reset - setting the value to 0 */
    }
    break;
  }
  dIOCtrlTransfer();
}


void      cIOCtrlExit(void)
{
  dIOCtrlExit();
}