Скачиваний:
29
Добавлен:
09.05.2014
Размер:
3.08 Кб
Скачать
/****************************************************************************

    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
  • #
    09.05.201426.06 Кб30led.lst
  • #
    09.05.20144.49 Кб30led.rel
  • #
    09.05.201426.06 Кб29led.rst
  • #
    09.05.201440.04 Кб29led.sym
  • #
    09.05.20149.98 Кб30max.asm
  • #
    09.05.20143.08 Кб29max.c
  • #
    09.05.20143.08 Кб29max.c~
  • #
    09.05.201424.51 Кб29max.lst
  • #
    09.05.20143.79 Кб29max.rel
  • #
    09.05.201424.51 Кб29max.rst
  • #
    09.05.201439.89 Кб29max.sym