Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADC LPC1248
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
zorromen
Здравствуйте люди. Есть маленький вопрос, точнее столкнулся с небольшой проблеммой, нужно запустить внутренний ацп, чтобы он синхронно начинал преобразование. Это делаю через перепад MAT0.1. Но чтото у меня все время идут преобразования, с максимальной скоростью ацп. Подскажите как правельно работать с ацп в таком режиме, прерывания от таймеров и ацп неисрользую.
HARMHARM
Цитата(zorromen @ Feb 17 2009, 21:05) *
Здравствуйте люди. Есть маленький вопрос, точнее столкнулся с небольшой проблеммой, нужно запустить внутренний ацп, чтобы он синхронно начинал преобразование. Это делаю через перепад MAT0.1. Но чтото у меня все время идут преобразования, с максимальной скоростью ацп. Подскажите как правельно работать с ацп в таком режиме, прерывания от таймеров и ацп неисрользую.

Для LPC2368 нужно не устанавливать бит BURST, я думаю АЦП LPC2138 в этом смысле не отличается.
A. Fig Lee
bb-offtopic.gif

артисты! smile.gif
"как сделать на 1248" ? на 2368 - так, значит и на 2138 - должно быть похоже...

biggrin.gif
zorromen
Цитата(A. Fig Lee @ Feb 18 2009, 00:44) *
bb-offtopic.gif

артисты! smile.gif
"как сделать на 1248" ? на 2368 - так, значит и на 2138 - должно быть похоже...

biggrin.gif


Ну блин, опчатка, что я сделаю? А смысл вопроса от этого не меняется.
AjaxLab
У меня примерно так работает на LPC2138 и LPC2387.
CODE

#define CLOCK 60000000
#define FREQ 100000

// Инициализация

T0TCR = 3; // Disable and Reset timer 0
T0IR = 0xFF; // Reset IRQ flags
T0CTCR = 0;
T0PC = 0;
T0PR = 0; // Prescaler is set to no division.
T0MR0 = (CLOCK / FREQ) - 1; // Это для DAC
T0MR1 = (CLOCK / (FREQ * 2)) - 1; // Это для ADC
T0MCR = 0; // Disable all MCR
T0CCR = 0; // Capture is disabled.
T0EMR = 0; // No external match output.

// Старт

AD0CR = (4 << 24) | (1 << 21) | ((CLOCK / 4500000) << 8) | (1 << 0);
T0TCR = 3; // Reset timer 0
T0MCR = (2 << 3); // Reset TC on MR1
T0EMR = (3 << 6); // Toggle EM1 on match
T0TCR = 1; // Enable timer 0

// Далее идут прерывания от ADC с частотой FREQ сбрасываются чтением AD0DR

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.