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

📄 m64_mp3.c

📁 一个基于ATmega64、VS1003、SD卡的mp3播放程序
💻 C
字号:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include "includes.h"
#include "VS1003B.c"



unsigned char Sector_Buffer[513]={0};

extern void show_lcd();
//UART0 initialize
// desired baud rate: 115200
// actual: baud rate:115198 (0.0%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
	UCSR0B = 0x00; //disable while setting baud rate
	UCSR0A = 0x00;
	UCSR0C = 0x06;
	UBRR0L = 0x05; //set baud rate lo
	UBRR0H = 0x00; //set baud rate hi
	UCSR0B = 0x18;
}


//UART1 initialize
// desired baud rate:115200
// actual baud rate:115198 (0.0%)
void uart1_init(void)
{
	UCSR1B = 0x00; //disable while setting baud rate
	UCSR1A = 0x00;
	UCSR1C = 0x06;
	UBRR1L = 0x05; //set baud rate lo
	UBRR1H = 0x00; //set baud rate hi
	UCSR1B = 0x18;
}
void Delay(unsigned int n)//延时
{
	while(n--)asm("nop");
}

int main(void)
{
	//unsigned long temp;
	unsigned int temp1;
	unsigned int i;
	unsigned char retry=0;
	PORTB=0xff;
	DDRG=0X01;
	PORTG=0xfe;
	DDRD=0XFF;
	SPI_PORT_INIT();
	PORTD|=(1<<3);
	//show_lcd();
	//SD_SPI_Init();
	SD_SPI_High();
	PORTD&=~(1<<3);
	uart0_init();
	SD_Init();//初始化spi口		
	if(VS1003B_Init()){
		UDR0=0XAA;
		while((UCSR0A&(1<<TXC0))==0);
		UCSR0A|=(1<<TXC0);}
	/*  while(1)
	{
	VS1003B_WriteCMD(0x0b,0xFFFF);
	VS1003B_ReadCMD(0x0b);
	VS1003B_ReadCMD(0x0b);
	VS1003B_ReadCMD(0x0b);
	UDR0=VS1003B_ReadCMD(0x0b);
	while((UCSR0A&(1<<TXC0))==0);
	UCSR0A|=(1<<TXC1);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	VS1003B_WriteCMD(0x0b,0x0000);
	VS1003B_ReadCMD(0x0b);
	VS1003B_ReadCMD(0x0b);
	UDR0=VS1003B_ReadCMD(0x0b);
	while((UCSR0A&(1<<TXC0))==0);
	UCSR0A|=(1<<TXC1);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);
	Delay(32767);


	}*/
	while(SD_Reset())//初始化SD卡					//sd card initialize
	{
		retry++;
		if(retry>20)
		{
			for(i=0;i<4;i++)
			{
				UDR0=0xaa;
				while((UCSR0A&(1<<TXC0))==0);
				UCSR0A|=(1<<TXC0);
			}
			break;
		}
	}
	i=Get_FAT_Basic_Info(); 
	temp1=Root_Dir();
	while (1);
}

⌨️ 快捷键说明

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