您当前的位置:五五电子网电子知识单片机-工控设备源码-程序简单LED驱动程序的编写 正文
简单LED驱动程序的编写

简单LED驱动程序的编写

点击数:7441 次   录入时间:03-04 11:59:53   整理:http://www.55dianzi.com   源码-程序

    unsigned char fLedStatue ;

    }LED_DATA , *PLED_DATA ;

    cLedNum :LED 的标号。0 对应第一个LED, 1 对应第2 个LED … 4 表示全部熄灭(因为它只有4 个LED )

    fLegStatue :将要实现的操作。 0 熄灭, 1 点亮。

    vi. LED_Write 函数的实现。

    DWORD Led_Write (DWORD hOpenContext ,

    DWORD pBuffer ,

    DWORD Count )

    {

    PLED_DATA pLedData = (PLED_DATA )pBuffer ;

    RETAILMSG (DEBUG_LED , (TEXT ("Current hOpenContext %d /n" )), hOpenContext );

    RETAILMSG (DEBUG_LED , (TEXT ("Corrent GPMDATA %d!/n" ), (((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT )));

    switch (pLedData ->cLedNum )

    {

    case 0:

    if (pLedData ->fLedStatue )

    {

    LED0_ON (((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT );

    RETAILMSG (DEBUG_LED , (TEXT ("Led0 on! %d/n!" ), ((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT ));

    }

    else

    {

    LED0_OFF (((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT );

    RETAILMSG (DEBUG_LED , (TEXT ("Led0 off!/n!" )));

    }

    break ;

    case 1:

    。。。。。。

    break ;

    case 2:

    。。。。。。

    break ;

    case 3:

    。。。。。。

    case 4:

    if (pLedData ->fLedStatue )

    { LED_ALL_ON (((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT );

    }

    else

    { LED_ALL_OFF (((PLED_PUBLIC_CONTEXT )hOpenContext )->pGPIOReg ->GPMDAT );

    }

    default :

    break ;

    }

    return (Count );

    }

    b) 其它流接口函数的编写:其它的流接口函数并没有实现函数过程, 它们一般就直接返回。在Led_Deinit 函数中进行了申请内存的释放,也调用了一个放弃映射的函数DrvLib_UnmapIoSpace , 其实这个函数在6.0 之中没有作用, 它是直接返回结果的函数。

    c) LED 的配置:

    设备管理器要使用LED 流驱动的接口,就必须将LED 提供的接口函数导出。在Led.def 文件中添加如下代码:

    LIBRARY LED

    EXPORTS Led_Init

    Led_Deinit

    Led_Open

    Led_Close

    Led_Read

    Led_Write

    Led_Seek

    Led_PowerDown

    Led_PowerUp

    Led_IOControl

    导出了LED 的接口函数,要把Led.dll 添加到镜像文件中去还要修改platform.bib 文件。

    在 MODULES 节中添加代码如图:

    最后修改注册表 platform.reg :

    HKEY_LOCAL_MACHINE/Drives/BuildIn 下添加注册表项 LED( 任意名字都可 )

    注册表项中的内容:

    六. 实验结果及分析

    a) 按照上述步骤进行 LED 流驱动的编写, 再编写一个简单的应用程序即可进行 LED 灯的控制。



上一页  [1] [2] 


本文关键字:程序  源码-程序单片机-工控设备 - 源码-程序

《简单LED驱动程序的编写》相关文章>>>