AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
16.03.2010, 01:36
|
|
Вид на жительство
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
|
Re: SD/MMC на AVR
примерно так при 8МГц
Код:
|
//TIMER1 initialize - prescale:64
// WGM: 0) Normal, TOP=0xFFFF
// desired value: 100Hz
// actual value: 100,000Hz (0,0%)
void timer1_init(void)
{
TCCR1B = 0x00; //stop
TCNT1H = 0xFB; //setup
TCNT1L = 0x1E;
TCCR1B = 0x03; //start Timer
} |
а вообще в мануале в примере с карточкой есть инициализация таймера
Последний раз редактировалось spballiance; 16.03.2010 в 01:41.
|
|
|
Сказали "Спасибо" spballiance
|
|
|
16.03.2010, 01:48
|
|
Прописка
Регистрация: 05.02.2008
Сообщений: 251
Сказал спасибо: 34
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: SD/MMC на AVR
Там как то по другому
/* Timer1 overflow interrupt frequency [Hz] */
#define T1_OVF_FREQ 100
/* Timer1 clock prescaler value */
#define T1_PRESC 1024L
/* Timer1 initialization value after overflow */
#define T1_INIT (0x10000L-(_MCU_CLOCK_FREQUENCY_/(T1_PRESC*T1_OVF_FREQ))),
Вы сами посчитали значения которые нужно присворить регистрам или это сделал генератор кода? Я такого там не не нашел.
|
|
|
|
16.03.2010, 01:49
|
|
Вид на жительство
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
|
Re: SD/MMC на AVR
я подглядываю в IAR , чтобы делитель точнее подобрать
Последний раз редактировалось spballiance; 16.03.2010 в 01:53.
|
|
|
|
16.03.2010, 01:54
|
|
Прописка
Регистрация: 05.02.2008
Сообщений: 251
Сказал спасибо: 34
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: SD/MMC на AVR
Сообщение от spballiance
|
я подглядываю в IAR , чтобы делитель точнее подобрать
|
А что это??
timer1_init() нужно при переходе по прерыванию постоянно выполнять?
Последний раз редактировалось Yegorvin; 16.03.2010 в 01:57.
|
|
|
|
16.03.2010, 02:05
|
|
Вид на жительство
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
|
Re: SD/MMC на AVR
это процедура инициализации таймера, негоже в main{} захламлять настройкой перефирии
|
|
|
|
16.03.2010, 03:04
|
|
Прописка
Регистрация: 05.02.2008
Сообщений: 251
Сказал спасибо: 34
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: SD/MMC на AVR
Урааааа Init Ok
|
|
|
|
16.03.2010, 03:08
|
|
Вид на жительство
Регистрация: 13.02.2010
Сообщений: 372
Сказал спасибо: 12
Сказали Спасибо 15 раз(а) в 12 сообщении(ях)
|
Re: SD/MMC на AVR
я тоже аналогично порадовался. КВ инструмент со своей спецификой. но бытовые задачки на нем решаются быстро с его хорошим описанием
|
|
|
|
16.03.2010, 03:33
|
|
Прописка
Регистрация: 09.11.2009
Сообщений: 193
Сказал спасибо: 47
Сказали Спасибо 58 раз(а) в 26 сообщении(ях)
|
Re: SD/MMC на AVR
Для того чтобы подсчитывать скорость UART, таймеров 8-16 битных, TWI, WATCHDOG и т.д. есть отличная программа AVRCALC. Для таймера выбираешь частоту кварца, предделитель и ту частоту, которую хочешь получить и смотришь TCNT Base...
в проекте или в библиотеке mega16.h вставь эти константы для библиотек (не помню или ff.h или sdcard.h):
/* SPSR - SPI Status Register */
#define SPI2X 0 // Double SPI Speed Bit
#define WCOL 6 // Write Collision Flag
#define SPIF 7 // SPI Interrupt Flag
/* SPCR - SPI Control Register */
#define SPR0 0 // SPI Clock Rate Select 0
#define SPR1 1 // SPI Clock Rate Select 1
#define CPHA 2 // Clock Phase
#define CPOL 3 // Clock polarity
#define MSTR 4 // Master/Slave Select
#define DORD 5 // Data Order
#define SPE 6 // SPI Enable
#define SPIE 7 // SPI Interrupt Enable
Последний раз редактировалось sersne; 16.03.2010 в 03:40.
|
|
|
Эти 5 пользователя(ей) сказали Спасибо sersne за это сообщение:
|
|
|
16.03.2010, 03:36
|
|
Прописка
Регистрация: 05.02.2008
Сообщений: 251
Сказал спасибо: 34
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: SD/MMC на AVR
Я хочу проигрывание wav файлов сделать наподобе этого проекта
http://radioded.ru/content/view/108/49/
но только на меге 16
|
|
|
|
16.03.2010, 12:17
|
|
Прописка
Регистрация: 05.02.2008
Сообщений: 251
Сказал спасибо: 34
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: SD/MMC на AVR
Попробовал реализовать работу с Fat как в примере в Helpe программы, использование пары функция привело к росту программы до 8кбайт (это 50% процессора), к ругани что маленький програмный стек и т.д. Что то слишком расточительно.
Попробовал отказаться от встроенной поддержки Fat в пользу библиотеки Чена Pelit Fat FS. Но при попытке вызвать из нее функцию выдало ошибку:
Linker error: C:\Electronics\Project\Atmega16\MMC Project\pff.h(137): function 'pf_mount' declared, but never defined
В папку с проектом я положил pff.h и pff.c, причем в pff.c эта функция реализована. Что то попахивает мистикой. Ошибка выскакивает именно при билде проекта, при обычной компиляции все нормально.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:07.
|
|