volume.c

来自「这是一个7"LCD 液晶屏显示器」· C语言 代码 · 共 97 行

C
97
字号
#include "indash.h"

void Volume_Controller_Init(void)
{
   Volume_Transmit_Data(0x79);
   Volume_Transmit_Data(0xd9);
   Volume_Transmit_Data(0xe7);
   Volume_Transmit_Data(0xa0);
   Volume_Transmit_Data(0xb0);
   Volume_Transmit_Data(0x20);
   Volume_Transmit_Data(0x30);
}

void Trans_Volume_Data(char value)
{
   Volume_Transmit_Data(0xd0 | (32 - value * 2) % 10);
   Volume_Transmit_Data(0xe0 | (32 - value * 2) / 10);
}

void Volume_Clk()
{
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 0;
}

void Volume_Ack_Bit()
{
   PT2257_DATA = 1;
   PT2257_DATA = 1;
   PT2257_DATA = 1;
   Volume_Clk();
}

void Volume_Transmit_Byte(unsigned char value)reentrant
{
   static char cnt = 0;

   cnt++;
   if (cnt < 8)
      Volume_Transmit_Byte(value / 2);
   else
      cnt = 0;

   PT2257_DATA = value % 2;
   Volume_Clk();
}

void Volume_Transmit_Data(unsigned char value)
{
   /* start bit */
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_CLK = 0;
   PT2257_CLK = 0;
   PT2257_CLK = 0;
   PT2257_CLK = 0;
   PT2257_CLK = 0;

   /* address byte */
   Volume_Transmit_Byte(0x88);
   Volume_Ack_Bit();

   Volume_Transmit_Byte(value);
   Volume_Ack_Bit();

   /* stop bit */
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_DATA = 0;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_CLK = 1;
   PT2257_DATA = 1;
   PT2257_DATA = 1;
   PT2257_DATA = 1;
   PT2257_DATA = 1;
   PT2257_DATA = 1;
}

⌨️ 快捷键说明

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