Последнее приложение: мигающие лампочки

Предыдущая  Содержание  Следующая V*D*V

Наконец, я разработаю приятное приложение, которое заставит светодиоды мигать последовательно. Чтобы добиться этого, должна быть написана программа в пользовательском пространстве, которая будет записывать в устройство /dev/parlelport по одному биту за раз.

 

<lights.c> =

 

#include <stdio.h>

#include <unistd.h>

int main() {

    unsigned char byte,dummy;

    FILE * PARLELPORT;

 

    /* Открывает устройство parlelport */

    PARLELPORT=fopen("/dev/parlelport","w");

    /* Удаляем буфер из файла ввода/вывода */

    setvbuf(PARLELPORT,&dummy,_IONBF,1);

 

    /* Инициализируем переменную в единицу */

    byte=1;

 

    /* Организуем бесконечный цикл */

    while (1) {

        /* Пишем в параллельный порт */

        /* для включения светодиода */

        printf("Byte value is %d\n",byte);

        fwrite(&byte,1,1,PARLELPORT);

        sleep(1);

        /* Обновляем значение байта */

        byte<<=1;

        if (byte == 0) byte = 1;

    }

 

    fclose(PARLELPORT);

}

 

Она может быть скомпилирована обычным способом:

 

$ gcc -o lights lights.c

 

и может быть запущена командой:

 

$ lights

 

Лампочки будут мигать последовательно одна за другой! Мигающие светодиоды и компьютеры с Linux и этой работающей программой показаны на Рисунке 4.

 

Рисунок 4. Мигающие светодиоды, установленные на плате, и компьютер под управлением Linux. Показаны два терминала: один, где загружен модуль "parlelport", и другой, где работает программа "lights".

Рисунок 4. Мигающие светодиоды, установленные на плате, и компьютер под управлением Linux. Показаны два терминала: один, где загружен модуль "parlelport", и другой, где работает программа "lights".

 

Предыдущая  Содержание  Следующая