cat5112.c

来自「在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LE」· C语言 代码 · 共 128 行

C
128
字号
/****************************************************************
**                                                              *
**  FILE         : cat5112.c                                    *
**                                                              *
**  By : Cyb 2007.07.01                                         *
****************************************************************/
#define CAT5112_GLOBALS

#include "includes.h"
#include "Hardware.h"
#include "watchdog.h"
#include "cat5112.h"
#include "uart_drv.h"

#define  CAT5112_DEBUG      0
static INT8U MachValume;

static void Delay(INT8U nums)
{
     INT8U i;
     
     for(i = 0;i<nums;i++)
     {
         __asm
         {
           NOP
         }
     }
}

static void SetUp_Cat5112(void)
{
     INT8U i;
     ClearWatchdog();
//   选定CAT5112,并设递增方式     
     CLEAR_PIN_CAT_CS();
     Delay(2);
     SET_PIN_CAT_UD();
     Delay(2);
//   改变计数器值     
     for(i=0;i<VOLUME_STEP;i++)
     {
        SET_PIN_CAT_INC();
        Delay(3);
        CLEAR_PIN_CAT_INC();
        Delay(5); 
     }
   
     SET_PIN_CAT_INC();
     Delay(15);
     SET_PIN_CAT_CS();
     Delay(10);

}

static void SetDown_Cat5112(void)
{ 
     INT8U i;
     ClearWatchdog();
//   选定CAT5112,并设递减方式     
     CLEAR_PIN_CAT_CS();
     Delay(2);
     CLEAR_PIN_CAT_UD();
     Delay(2);
//   改变计数器值     
     for(i=0;i<VOLUME_STEP;i++)
     {
        SET_PIN_CAT_INC();
        Delay(3);
        CLEAR_PIN_CAT_INC();
        Delay(5); 
     }
   
     SET_PIN_CAT_INC();
     Delay(15);
     SET_PIN_CAT_CS();
     Delay(10);

}

void  TurnUpVolumeStepbyStep(void)
{
     SetUp_Cat5112();
}

void  TurnDownVolumeStepbyStep(void)
{
     SetDown_Cat5112();
}

void TurnVolumeToCertainValue(INT8U value)
{
    INT8U i;
    
    if(value == MachValume)
    {
        return;
    }
    
    if(value > MachValume)
    {
        for(i=0;i<(value - MachValume);i++)
        {
            SetUp_Cat5112();
        }
    }
    else
    {
        for(i=0;i<( MachValume - value);i++)
        {
            SetDown_Cat5112();
        }
    }
}

void SetMachineVolume(INT8U value)
{
      MachValume = value;
#if CAT5112_DEBUG >0
      PrintFromUART( DEBUG_UARTNo_DISPLAYTASK, "\nMachValume=");
      SendFromUART_HEX(DEBUG_UARTNo_DISPLAYTASK, MachValume);
#endif   
}

INT8U GetMachineVolume(void)
{
     return MachValume;
}

⌨️ 快捷键说明

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