Страница 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 дабы не парить себе и окружающим мозги :))