для pic18 так
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено A_F 04 ноября 2004 г. 15:14
В ответ на: (+) отправлено netaimaid 04 ноября 2004 г. 14:43

#define COMM_WR 0b00000000
#define COMM_READ 0b01000000
#define COMM_MODE 0b00000001
#define COMM_CONTROL 0b00000010
#define COMM_FILTER 0b00000011
#define COMM_DATA 0b00000100
#define COMM_OFFSET 0b00000101
#define COMM_GAIN 0b00000110
#define COMM_IO 0b00000111
#define COMM_TEST1 0b00001100
#define COMM_TEST2 0b00001101
#define COMM_ID 0b00001111

#define CONTROL_CONST 0b10001100

#define ADC_DRDY RC1


void ConfigADC(void)
{
WriteSPI(COMM_WR | COMM_FILTER);
WriteSPI(255);
WriteSPI(COMM_WR | COMM_CONTROL);
WriteSPI(CONTROL_CONST);
WriteSPI(COMM_WR | COMM_MODE);
WriteSPI(0b01010011);
while(ADC_DRDY);
}


void SetChannel(unsigned char ch)
{
ch = ch << 4;
WriteSPI(COMM_WR | COMM_CONTROL);
WriteSPI(ch | CONTROL_CONST);
}


unsigned long ReadADC7718(void)
{
unsigned long il=0;
unsigned char a1,a2,a3;
while(ADC_DRDY);
WriteSPI(COMM_READ | COMM_DATA);
WriteSPI(255);
a1 = SSPBUF;
WriteSPI(255);
a2 = SSPBUF;
WriteSPI(255);
a3 = SSPBUF;
il = a1;
il = il << 8;
il |= a2;
il = il << 8;
il |= a3;
}


void WriteSPI(unsigned char v)
{
SSPBUF = v;
while(BF==0);
}

void SPIInit(unsigned char v)
{
//nastroyka SPI
SSPCON1 = 0b00010010;
SSPSTAT = 0b00000000;
SSPEN = 1;
}


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

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru