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

    led.c - простейший драйвер светодиодов
            для учебного стенда SDK-1.1

    (C) led.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"
#include "max.h"

static unsigned char old_led = 0;   // "Видеопамять" линейки светодиодов


/**----------------------------------------------------------------------------
                            led
-------------------------------------------------------------------------------
Управление одним светодиодом

Вход:       n  - порядковый номер светодиода ( от 0 до 7 )
            on - 1 - зажигает, 0 гасит светодиод
Выход:      нет
Результат:  нет
Описание:   Производится доступ к регистру расширителя портов SV с помощью
            функции write_max. Состояние светодиодов хранится в регистре old_led.

Пример:
-----------------------------------------------------------------------------*/

void led( unsigned char n, unsigned char on )
{
unsigned char c;
unsigned char mask = 1;

    if( n > 7 ) return;

    c = old_led;

    mask <<= n;

    if( on )
        c |= mask;
    else
        c &= ~mask;         

    writeMax( SV, c );     

    old_led = c;
}


/**----------------------------------------------------------------------------
                            leds
-------------------------------------------------------------------------------
Зажигание линейки светодиодов

Вход:       on - управление светодиодами. Каждый бит переменной отвечает за один 
            светодиод: 1 - зажигает, 0 гасит светодиод
Выход:      нет
Результат:  нет
Описание:   Производится доступ к регистру расширителя портов SV с помощью
            функции write_max. Состояние светодиодов хранится в регистре old_led.

Пример:
-----------------------------------------------------------------------------*/

void leds( unsigned char on )
{
    writeMax( SV, on );     

    old_led = on;
}





Соседние файлы в папке SRC
  • #
    09.05.201451.48 Кб29lcd.lst
  • #
    09.05.20148.76 Кб29lcd.rel
  • #
    09.05.201451.48 Кб29lcd.rst
  • #
    09.05.201440.65 Кб29lcd.sym
  • #
    09.05.201410.38 Кб29led.asm
  • #
    09.05.20143 Кб29led.c
  • #
    09.05.20143.01 Кб30led.c~
  • #
    09.05.201426.06 Кб30led.lst
  • #
    09.05.20144.49 Кб30led.rel
  • #
    09.05.201426.06 Кб29led.rst
  • #
    09.05.201440.04 Кб29led.sym