⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leddrv.c

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 C
字号:
/****************************************************************
**                                                              *
**  FILE         : LedDrv.c                                     *
**                                                              *
**  By : Cyb 2007.07.01                                         *
****************************************************************/
#define   LEDDRV_GLOBALS
#include "includes.h"
#include "hardware.h"
#include "NK1628_drv.h"
#include "uart_drv.h"
#include "LedDrv.h"

#if DEBUG_UARTNo_LEDDRV <=1
#include "timetask.h"

static INT8U    test[4]={ 0x00,0x00,0x00,0x00};
static TMR_TSK  *testtmr;
#endif
INT8U NUMBER[10]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f};
static INT8U Clear[4] = { 0x00,0x00,0x00,0x00};

void SendLedDisplay(INT8U *text,INT8U textlen,INT8U bpos,INT8U epos)
{
#if DEBUG_UARTNo_LEDDRV >1    
    INT8U i;
    INT8U len;
    INT8U addr;
    
    len  = epos - bpos +1;
    addr = bpos*2;
     
    if(len < textlen)
    {
       return;
    }
    
    DispControl(DISPCONTROL|DISPOFF);
    SetWorkMode(DISPMODE|DIG4SEG13,DATAMODE|NORMAL|ADDRFIXED|DATADISP);
   
    for(i=0;i<len;i++)
    {
       SendData(ADDRSET,addr,*text++);
       addr+=2;
    }
    
    DispControl(DISPCONTROL|DISPON);
#endif
    
}

#if DEBUG_UARTNo_LEDDRV <=1

void GetTest(INT8U *tr)
{
    memcpy(test,tr,4);
    PrintFromUART(DEBUG_UARTNo_LEDDRV,"\ntest=");
    SendFromUART_MEM_HEX(DEBUG_UARTNo_LEDDRV,test,4);
}

void TestDisplay(INT8U *text,INT8U textlen,INT8U bpos,INT8U epos)
{
    INT8U i;
    INT8U len;
    INT8U addr;
    
    len  = epos - bpos +1;
    addr = bpos*2;
     
    if(len < textlen)
    {
       return;
    }
    
    DispControl(DISPCONTROL|DISPOFF);
    SetWorkMode(DISPMODE|DIG4SEG13,DATAMODE|NORMAL|ADDRFIXED|DATADISP);
   
    for(i=0;i<len;i++)
    {
       SendData(ADDRSET,addr,*text++);
       addr+=2;
    }
    
    DispControl(DISPCONTROL|DISPON);
}

static void testtmrproc(void)
{
    TestDisplay(test,4,0,3);
}
#endif

void ClearLedDisplay(void)
{
    SendLedDisplay(Clear,4,0,3);  
}

void InitLed(void)
{
    
    InitNKContrPins();
    DispControl(DISPCONTROL|DISPOFF);
    SetWorkMode(DISPMODE|DIG4SEG13,DATAMODE|TEST|ADDRFIXED|DATADISP);
    DispControl(DISPCONTROL|DISPON);
    ClearLedDisplay();
    
#if DEBUG_UARTNo_LEDDRV <=1
    testtmr = CreateTimer(testtmrproc, 0);
    StartTmr(testtmr,  MILTICK, 5);
#endif    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -