[an error occurred while processing this directive]
Было точно такое из-за чисто программных проблем(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено war4one 15 июня 2006 г. 10:48
В ответ на: Сделал диктофон. Выборка 8кГц и буфер для записи на ММС 512б так вот поле записи появляеться помеха(щелчки) с частотой 15 Гц (8000/512 == 15) что посоветуете... отправлено <font color=gray>FENIX</font> 14 июня 2006 г. 23:58

Не помню точно, в чем была проблема, но в конце концов переписал процедуры так, что щелчки пропали (прога для ATmega128).

#pragma vector = TIMER1_OVF_vect
__interrupt void OutVoiceSample(void)
{
Timer1OverCount++;
if (Timer1OverCount == 2)
{
Timer1OverCount = 0;
ACSR |= T1_OVF;
}
}//OutVoiceSample

void DF_MainMemoryToSpeaker(unsigned int Page)
{
unsigned long IntroAddress;
unsigned char dummy = 0;
unsigned int StartAddress = 0;

clrbit(PORTG, nFCS);
DF_WriteSPI(DF_MM_RD);
DF_WriteSPI((char)(Page >> 7));
DF_WriteSPI((char)(Page << 1)|(StartAddress >> 8));
DF_WriteSPI((char)(StartAddress));
DF_WriteSPI(0x00);
DF_WriteSPI(0x00);
DF_WriteSPI(0x00);
DF_WriteSPI(0x00);

for(IntroAddress = 0; IntroAddress < MAX_BUFFER; IntroAddress++)
{
while(!(ACSR&T1_OVF));
DF_WriteSPI(0xFF);
dummy = SPDR;
OCR1B = dummy;
ACSR &= (~T1_OVF);
}
setbit(PORTG, nFCS);
}//DF_MainMemoryToSpeaker

void DF_PagesToSpeaker(unsigned int StartPage, unsigned int EndPage)
{
unsigned int CurrentPage;

SPCR = 0x5C;

TCCR1A = 0x21;
TCNT1 = 0x00;
TIFR = 0x04;
setbit(TIMSK, TOIE1);
TCCR1B = 0x01;
OCR1B = 0x00;

for (CurrentPage = StartPage; CurrentPage <= EndPage; CurrentPage++)
DF_MainMemoryToSpeaker(CurrentPage);

clrbit(TIMSK, TOIE1);
TCCR1B = 0x00;

SPCR = 0x00;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru