Мне нужно подключить DFPlayer к ATmega8. Про подключение DFPlayer к Arduino нашёл много статей и примеров, а вот как подключить его к микроконтроллеру что-то не нахожу информации. Сразу хочу сказать что работаю в Programmers Notepad [WinAVR], через Khazama AVR Programmer, загружаю с помощью USBASP совсем недавно. Поэтому боюсь сжечь
Проанализировав то, что нашёл, составил схему подключения и переписал код с нескольких источников. В итоге получилось так

main.h
Код: Выделить всё
#define F_CPU 8000000ULКод: Выделить всё
#include <stdio.h>
#include <avr/io.h>
int current_track_number = 0;
int default_buffer[10] = {0x7E , 0xFF , 0x06 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF}; // Default Buffer
int buffer_data[10] = {0x7E , 0xFF , 0x06 , 0x00 , 0x00 , 0x00 , 0x00 , 0xEF}; // Sending Buffer
// Send Buffer to UART TX Pin
void send_buffer(void) {
int i;
for( i=0; i< 10; i++){
putchar(buffer_data[i]);
buffer_data[i] = default_buffer[i];
}
}
// Set Volume And Send it's Serial Command
void set_volume( int volume ) {
buffer_data[3] = 0x06;
buffer_data[6] = volume;
send_buffer();
}
// Set a Track (1-3000) to Play
void play_track(int track_id) {
buffer_data[3] = 0x03;
if(track_id < 256) {
buffer_data[6] = track_id;
} else {
buffer_data[5] = track_id / 256;
buffer_data[6] = track_id - 256 * buffer_data[6];
}
send_buffer();
}
// Set a Track to Play Continuous
void play_current_track_continuous(void) {
buffer_data[3] = 0x08;
buffer_data[6] = current_track_number;
send_buffer();
}
// Pause Current Playing Track
void pause_current_track(void) {
buffer_data[3] = 0x0E;
send_buffer();
}
int main(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
//
set_volume(10);
//
play_track(0);
}
Добавлено after 31 minute 25 seconds:
На схеме не стал дополнительно отображать подтяжку RESET к плюсу питания через резистор, чтобы не перегружать её соединениями.


