Witam, buduję odtwarzacz CD na napędzie ATAPI, jednak napotkałem na problem. Nie działa mi komenda PLAY AUDIO - 0x45 (jak i inne do odtwarzania audio, oczywiście z odpowiednimi parametrami), oto kod:
Być może problem jest też w funkcji ATAPI_Packet, choć inne komendy działają dobrze
Zakomentowane części kodu niby powinny się tam znaleźć i znajdują się w większości implementacji, ale u mnie z nimi w ogóle nic nie działało
. Po wykonaniu PLAY AUDIO odczytuję rejestr błędów i dostaję 0x04, czyli komenda anulowana, ale sense key jest 0, czyli brak błędu. Tak samo kody ASC i ASCQ po wykonaniu komendy REQUEST SENSE, choć ona też może mieć błędy
.
Co tutaj może być nie tak?
char Packet={0x45, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 0};
ATAPI_Packet(Packet);Być może problem jest też w funkcji ATAPI_Packet, choć inne komendy działają dobrze
void ATAPI_Packet(char Packet[12]){
/*ATAPI_Write(REG_FEATURES, 0, 0);*/
ATAPI_Write(REG_HICOUNT, 0, 0);
ATAPI_Write(REG_LOCOUNT, 0, 0);
ATAPI_Write(REG_COMMAND, CMD_PACKET, 0);
_delay_ms(10);
//ATAPI_BusyWait();
//ATAPI_DataWait();
char i;
for(i=0; i<12; i+=2){
ATAPI_Write(REG_DATA, Packet[i], Packet[i+1]);
//_delay_us(40);
}
//while(ATAPI_ReadByte(REG_STATUS)&8==8)
//ATAPI_ReadByte(REG_DATA);
//ATAPI_BusyWait();
}Zakomentowane części kodu niby powinny się tam znaleźć i znajdują się w większości implementacji, ale u mnie z nimi w ogóle nic nie działało
Co tutaj może być nie tak?
![[ATAPI] ATAPI: Nie działa komenda PLAY AUDIO 0x45 w odtwarzaczu CD - analiza kodu [ATAPI] ATAPI: Nie działa komenda PLAY AUDIO 0x45 w odtwarzaczu CD - analiza kodu](https://images41.fotosik.pl/1180/da553059e2b693c7m.jpg)