//Заголовки и определения обслуживания модуля 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 ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |