From ba78bd9ba834260d035a9830726afc34fdad2a15 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 18 Oct 2009 23:32:54 +0200 Subject: import firmware from LEGO v1.05 --- AT91SAM7S256/Source/c_ioctrl.c | 78 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 AT91SAM7S256/Source/c_ioctrl.c (limited to 'AT91SAM7S256/Source/c_ioctrl.c') diff --git a/AT91SAM7S256/Source/c_ioctrl.c b/AT91SAM7S256/Source/c_ioctrl.c new file mode 100644 index 0000000..2964f33 --- /dev/null +++ b/AT91SAM7S256/Source/c_ioctrl.c @@ -0,0 +1,78 @@ +// +// Date init 14.12.2004 +// +// Revision date $Date:: 16-05-06 9:50 $ +// +// Filename $Workfile:: c_ioctrl.c $ +// +// Version $Revision:: 13 $ +// +// Archive $Archive:: /LMS2006/Sys01/Main/Firmware/Source/c_ioctrl.c $ +// +// 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(); +} + -- cgit v1.2.3