[an error occurred while processing this directive]
|
Воооот... Короче, не получается НИКАК остановить прерывания кодека и потом запустить их снова. Такой вот код (из примера talkthrough от 2191 ez-kit) оставляет кодек в неживом состоянии:
Остановка кодека:
STOP_CODEC:
//disable codec interrupt
ar = IMASK;
ar = clrbit 5 of ar;
IMASK = ar;
//dis.codec transmission
IOPG=0x02; // SPORT0
ar=io(SP0DT_CFG);
// Disable TX DMA
ar = clrbit 0 of ar;
io(SP0DT_CFG) = ar;
ar = io(SP0DR_CFG);
// Disable RX DMA
ar = clrbit 0 of ar;
io(SP0DR_CFG) = ar;
rts;
Запуск кодека:
START:
call Program_SPORT0_Registers;
call Program_DMA_Controller;
call AD1885_Codec_Initialization;
ax0=0x0000;
dm(RX_Status)=ax0;
nop;nop;nop;nop; //user code here
call STOP_CODEC;
jump start;
Аналоги Девиц ответили, что мол, проблема известна и дело не в кодеке, а в работе ядра 2191 со SPORTом (какой-то там несинхрон у них) и что если они чего надумают, то сообщат :))) Вот и подумалось, а может кто-нибудь, не зная, что дело безнадёжное, справился как-то с этим траблом?
E-mail: info@telesys.ru