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

📄 editbox.c

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

#include "includes.h"
#include "timetask.h"
#include "uart_drv.h"
#include "LedDrv.h"
#include "DisplayTask.h"
#include "Hardware.h"
#include "audio.h"
#include "_keyboard.h"
#include "voice.h"
#include "EditBox.h"

#define   EDITBOX_DEBUG    1

static   INT8U  CLEAR = 0x00;

void  EditBoxDeleteChar(EDITBOX *editbox)
{
    if(editbox->editlen == 0)
    {
       return;
    }
    
    editbox->editlen--;
#if EDITBOX_DEBUG >0
    PrintFromUART(DEBUG_UARTNo_DISPLAYTASK,"\n");
    SendFromUART_MEM_HEX(DEBUG_UARTNo_DISPLAYTASK,editbox->editbuf,editbox->editlen);
#endif
}

void  EditBox_HdlNumKey(EDITBOX *editbox,INT8U key)
{
        
    editbox->editlen++;
    
    if(editbox->editlen > EDITMAXLENGTH)
    {
        return;
    }
    
    editbox->editbuf[editbox->editlen-1] = key;

#if EDITBOX_DEBUG >0
    PrintFromUART(DEBUG_UARTNo_DISPLAYTASK,"\n");
    SendFromUART_MEM_HEX(DEBUG_UARTNo_DISPLAYTASK,editbox->editbuf,editbox->editlen);
#endif 
    
}

BOOLEAN  IsNumber(INT8U key)
{
   if((key>=KEY_0)&&(key<=KEY_9))
   {
       return TRUE;
   }
   else
   {
       return FALSE;
   }
}

void RefleshEditBox(EDITBOX *editbox)
{
   INT8U i,j;
   INT8U index;
   
   if(editbox->editlen ==0)
   {
       ClearLedDisplay();
       return;
   }
   
   if(editbox->editlen > EDITMAXLENGTH)
   {
      return;
   }
   
   if(editbox->editlen <=4)
   {
      for(i=0;i<editbox->editlen;i++)
      {
         index = editbox->editbuf[i]-0x30;
         SendLedDisplay(&NUMBER[index],1,i,i);
      }
      
      while(i<4)
      {
         SendLedDisplay(&CLEAR,1,i,i);
         i++;
      }
   }
   else
   {
      for(i=0;i<4;i++)
      {
         j     =  editbox->editlen-1-i;
         index =  editbox->editbuf[j]-0x30;
         SendLedDisplay(&NUMBER[index],1,3-i,3-i);
      }
   }
}

⌨️ 快捷键说明

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