[an error occurred while processing this directive]
|
#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.0001PINSEL1 |= 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: info@telesys.ru