📄 m61540.c
字号:
void M61540_Send_Volume_Data(volatile unsigned char Volume_Data_L,volatile unsigned char Volume_Data_R,volatile unsigned char End_Byte)
{
unsigned char Count = 0;
DDRD |=(1<<DDD2);
DDRB |=(1<<DDB1);
M61540_CLK = 0;
M61540_Data = 0;
//Send slected channel gain
M61540_Data = 0;
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16); //0
M61540_Data = 0;
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16); //0
for(Count=0 ; Count<7 ; Count++)
{
if((Volume_Data_L & 0x01)==0x01)
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16);
Volume_Data_L >>= 1;
}
//Send slected channel gain
M61540_Data = 0;
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16); //0
M61540_Data = 0;
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16); //0
for(Count=0 ; Count<7 ; Count++)
{
if((Volume_Data_R & 0x01) == 0x01)
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16);
Volume_Data_R >>= 1;
}
//Send finishing sign
for(Count=0 ; Count<6 ; Count++)
{
if((End_Byte & 0x01) == 0x01)
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 1;
Delay(16);
if(Count == 5) //end bit
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 0;
Delay(16);
End_Byte>>=1;
}
M61540_Data = 0;
}
void M61540_Send_Control_Data(volatile unsigned char Control_Data,volatile unsigned char Treble_Bass)
{
unsigned char Count = 0;
DDRD |=(1<<DDD2);
DDRB |=(1<<DDB1);
M61540_CLK = 0;
M61540_Data = 0;
for(Count=0 ; Count<8 ; Count++)
{
if((Control_Data & 0x01) == 0x01)
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16);
Control_Data>>=1;
}
//Treble and Bass
for(Count=0 ; Count<8 ; Count++)
{
if((Treble_Bass & 0x01) == 0x01)
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 1;
Delay(16);
M61540_Data = 0;
Delay(8);
M61540_CLK = 0;
Delay(16);
Treble_Bass>>=1;
}
//Send finishing sign
for(Count=0 ; Count<8 ; Count++)
{
M61540_Data = 0;
Delay(8);
M61540_CLK = 1;
Delay(16);
if(Count==7) // end bit
{
M61540_Data = 1;
}
else
{
M61540_Data = 0;
}
Delay(8);
M61540_CLK = 0;
Delay(16); //0
}
M61540_Data = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -