📄 volume.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -