[an error occurred while processing this directive]
вот
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено by-pass 16 ноября 2005 г. 16:24
В ответ на: покажите код отправлено DASM 16 ноября 2005 г. 16:21


#include
#include

#include "ADC.h"
#include "Clock.h"
#include "Config_board.h"


/*************************************************************************/
//ADC Driving functions
/*************************************************************************/
void ADCInit(void)
{
//IODIR1 = 0x00FF0000; /* P1.16..23 defined as Outputs */
//VPBDIV = 0x02; /*Set the Pclk to 30 Mhz */
//ADCR = 0x00210601; /* Setup A/D: 10-bit AIN0 @ 3MHz */
// 10.0001.0000.0110.0000.0001

PINSEL1 |= 0x01<<22; //Нога P0.27 как AIN0 (A/D Converter)
PINSEL1 |= 0x01<<24; //Нога P0.28 как AIN0 (A/D Converter)
PINSEL1 |= 0x01<<26; //Нога P0.29 как AIN0 (A/D Converter)
PINSEL1 |= 0x01<<28; //Нога P0.30 как AIN0 (A/D Converter)

//ADCR_bit.SEL = 0x0f; // Все ацп выбраны
ADCR_bit.SEL = 0x01; // ацп 0

// Запустили преобразование АЦП на частоте ADC_CLOCK_FREQUENCY
ADCR_bit.CLKDIV = getperipheralClockFreq() / ADC_CLOCK_FREQUENCY - 1;

ADCR_bit.BURST = 0; // Програмное АЦП
ADCR_bit.CLKS = 0; // 10разрядов 11тактов
ADCR_bit.PDN = 1; // Работать в рабочем режиме (не powerdown)
ADCR_bit.START = 0; //
}

unsigned int start_ADC_convers(char *buff, char channel)//каналы идут с 1..4
{
ADCR_bit.SEL = channel; // выбрали канал ацп
ADCR_bit.START = 0x01; // Обычное преоразование
while (ADDR_bit.DONE == 0); //ждем окончания
return ADDR_bit.VVDDA; // читаем данные
}


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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru