Предыдущая Следующая

//Заголовки и определения обслуживания модуля SPIO

//------------------------------------------------------------------------

tinclude "hardware.h" //подключение специальных заголовков и определений //Объявление функции инициализации модуля SPIO void SPIOinitО;

//Объявление функции передачи байта и приема байта через SPIO U8 SPI0rx_tx_byte(U8);

ФайлМ>7705.с

//------------------------------------------------------------------------

//ПО обслуживания AD7705

//------------------------------------------------------------------------

tinclude "hardware.h" //подключение специальных заголовков и определений tinclude "AD7705.h" //подключение специальных заголовков и определений const U16 Uref_V = 25000; //опорное напряжение АЦП в вольтах/10000 (0.1 мВ) U8 AD7705rx_byte; //принятый байт через SPI0 из AD7705

U8 г10000=0; //-----------------------------------

U8 г1000=0; //

U8 г100=0; //разряды десятичного числа U8 г10=0; //

U8 rl=0; //-----------------------------------

//Функция инициализации линий CS и RES AD7705

void AD7705_CS_RES()

{

//задание направлений линий GPIO, обслуживающих AD7705:

//Р0.8 - CS, Р0.9 - RES

IO0DIR=0x3000300;

//ОЬОООО ООН 0000 0000 0000 ООН 0000 0000 Р0.8, Р0.9 - выходы }

//Функция сброса AD7705 через SPI0

void AD7705reset()

{

OUT_CS_AD7705_UP; //установка линии CS AD7705

OUT_RES_AD7705_DOWN; //сброс линии RES AD7705 delay(100000); //задержка на сброс AD7705

OUT_RES_AD7705JJP; //установка линии RES AD7705 delay(100000); //задержка }

//Функция^1ередачи байта и приема байта через SPI0 для AD7705

U8 AD7705rx_tx_byte(U8 tx_byte)

{

OUT_CS_AD7705_DOWN; //сброс линии CS AD7705

delay(50); //задержка AD7705rx_byte = SPI0rx_tx_byte(tx_byte); //прием/передача байта delay(50); //задержка

OUT_CS_AD7705_UP; //установка линии CS AD7705

return AD7705rxJsyte;

} /

//Функция инициализации AD7705 через SPIO void AD7705init()

{

AD7705rx_tx_byte(0x20); //запись в регистр связи -

//последует запись в регистр синхронизации AD7705rx_tx_byte(0x09); //запись в регистр синхронизации:

//тактовый генератор включен, частота делится

//частота фильтра 25 Гц AD7705rx_tx_byte(0x10); //запись в регистр связи -

//последует запись в регистр установок AD7705rx_tx_byte(0x46); //запись в регистр установок:

//внутренняя калибровка, усиление = 1, //униполярный режим, буфер включен, фильтр запущен

}

//Функция одного измерения AD7705 и индикации результата в десятичном виде, //в дискретах АЦП и вольтах void AD7705izm_ind() {

U16 H_rez_AD7705 U16 L_rez_AD7705 U16 Res_AD7705_V

//старший байт результата АЦП //младший байт результата АЦП //результат АЦП в В Opros_AD7705: //метка начала цикла измерений

AD7705rx_tx_byte(0x08); //запись в регистр связи -

//последует чтение регистра связи AD7705rx_tx_byte(0x00); //чтение регистра связи if BIT_TEST(AD7705rx_byte,7) goto Opros_AD7705; AD7705rx_tx_byte(0x38); //запись в регистр связи -


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz