Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:отчеты по лабораторным работам / будильник / Alarm5 / SRC / max
.c/****************************************************************************
max.c - драйвер расширителя ввода-вывода
для учебного стенда SDK-1.1
(C) max.c, Ключев А.О. 2007 г.
Это свободная программа; вы можете повторно распространять ее и/или
модифицировать ее в соответствии с Универсальной Общественной
Лицензией GNU, опубликованной Фондом Свободного ПО; либо версии 2,
либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий
КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Для
получения подробных сведений смотрите Универсальную Общественную
Лицензию GNU.
Вы должны были получить копию Универсальной Общественной Лицензии
GNU вместе с этой программой; если нет, напишите по адресу: Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA
----------------------------------------------------------------------------
Россия, Санкт-Петербург, кафедра вычислительной техники СПбГУИТМО
e-mail: kluchev@d1.ifmo.ru
****************************************************************************/
#include "aduc812.h"
#define MAXBASE 0x8 //Номер страницы внешней памяти (xdata), куда отображаются
//регистры расширителя.
/**----------------------------------------------------------------------------
write_max
-------------------------------------------------------------------------------
Запись в нужный регистр ПЛИС ALTERA MAX3064(3128)
Вход: regnum - адрес (номер) регистра
val - записываемое значение
Выход: нет
Результат: нет
Описание: Производится запись в регистр (порт) ПЛИС ALTERA MAX3064(3128)
путем переключения адресуемой страницы памяти на страницу, где
расположены (куда отображаются) порты ввода-вывода ПЛИС.
Пример:
-----------------------------------------------------------------------------*/
void writeMax( unsigned char xdata *regnum, unsigned char val )
{
unsigned char oldDPP = DPP;
DPP = MAXBASE;
*regnum = val;
DPP = oldDPP;
}
/**----------------------------------------------------------------------------
read_max
-------------------------------------------------------------------------------
Чтение из нужного регистра ПЛИС ALTERA MAX3064(3128)
Вход: regnum - адрес (номер) регистра
Выход: нет
Результат: прочитанное из регистра значение
Описание: Чтение из порта ПЛИС ALTERA MAX3064(3128)
путем переключения адресуемой страницы памяти на страницу, где
расположены (куда отображаются) порты ввода-вывода ПЛИС
Пример:
-----------------------------------------------------------------------------*/
unsigned char readMax( unsigned char xdata *regnum )
{
unsigned char oldDPP=DPP;
unsigned char val;
DPP = MAXBASE;
val = *regnum;
DPP = oldDPP;
return val;
}
Соседние файлы в папке SRC