Страница 1 из 1
Диктофон Atmega8
Добавлено: Вт мар 04, 2014 16:39:32
kotriks
Здраствуйте уважаемые форумчане!
Нашёл тут статью про запись и воспроизведение речи
http://ffix.ru/2010-11-04-13-47-03/item ... D0%BC.html
Сижу и думаю будет ли работать на обычной микро сд в 4гб например или только дата флеш? там вроде линии одни и теже или я ошибаюсь, если нет возможно ли поправить это как то. Спасибо
Re: Диктофон Atmega8
Добавлено: Вт мар 04, 2014 18:00:57
uk8amk
будет ли работать на обычной микро сд в 4гб
Нет.
там вроде линии одни и теже или я ошибаюсь
Ошибаетесь. Линии по разному используются. И команды по ним другие ходят.
возможно ли поправить это как то.
Да. Надо написать другую программу.
Re: Диктофон Atmega8
Добавлено: Вт мар 04, 2014 20:32:33
kotriks
Возможно есть у кого то готовое решение поделитесь если не жалко или может есть на просторах интернета гдето уже готовое я не встречал.
Re: Диктофон Atmega8
Добавлено: Вт мар 04, 2014 21:55:33
kotriks
вот нашёл готовый пример но меги нет 32 есть только 168, помогите поправить под 48 мегу регистры, SFIOR вообще нет ни слова в даташите про этот регистор, встал в ступор.
http://we.easyelectronics.ru/AVR/zapis-zvuka.html
Код: Выделить всё
void capture_init()
{
capture_wp = 0;
capture_rp = 0;
// Setup ADC (Channel 0, Fclk/8, Trigger=OCI0)
ADMUX = 1<<ADLAR;
SFIOR |= (1<<ADTS1) | (1<<ADTS0);
ADCSRA = (1<<ADEN) | (1<<ADATE) | (1<<ADIE) | (1<<ADPS1) | (1<<ADPS0);
}
void capture_start(uint16_t freq)
{
// Setup Timer0 (CTC, Fclk/8, Fint=freq)
OCR0 = F_CPU/8UL/freq;
TIMSK |= 1<<OCIE0;
TCCR0 = (1<<WGM01) | (1<<CS01);
}
void capture_stop()
{
// Stop capture
TCCR0 = 0;
capture_wp = capture_rp;
}
сделал так не знаю правильно нет
Код: Выделить всё
void capture_init()
{
capture_wp = 0;
capture_rp = 0;
// Setup ADC (Channel 0, Fclk/8, Trigger=OCI0)
ADMUX = 1<<ADLAR;
//SFIOR |= (1<<ADTS1) | (1<<ADTS0);
ADCSRA |= (1<<ADTS1) | (1<<ADTS0);
ADCSRA = (1<<ADEN) | (1<<ADATE) | (1<<ADIE) | (1<<ADPS1) | (1<<ADPS0);
}
void capture_start(uint16_t freq)
{
// Setup Timer0 (CTC, Fclk/8, Fint=freq)
OCR0A = F_CPU/8UL/freq;
TIMSK1 |= 1<<OCIE0A;
TCCR0A = (1<<WGM01) | (1<<CS01);
}
void capture_stop()
{
// Stop capture
TCCR0A = 0;
capture_wp = capture_rp;
}
Re: Диктофон Atmega8
Добавлено: Вт мар 04, 2014 22:09:47
oleg110592
SFIOR в меге48 это ADCSRB
Re: Диктофон Atmega8
Добавлено: Вт мар 04, 2014 22:20:45
kotriks
Сделал множество ошибок в протеусе при запуске, вот исходники и файл симулятора, может кто глянет подскажет что не так у меня там, были бы средства купил бы мегу32 дабы не парить себе и окружающим мозги
