Permalink
Browse files

+ ADS1256: добавил API методы SYNC, STANDBY, WAKEUP.

  • Loading branch information...
Celeron
Celeron committed Dec 1, 2018
1 parent 527fddf commit ddff87d740a593684c3669ac542865d3a3245360
Showing with 64 additions and 3 deletions.
  1. +58 −1 ads1256.c
  2. +6 −2 ads1256.h
@@ -611,7 +611,13 @@ void ADS1256_Command_WakeUp(void)


//-------------------------------------
// Reset Registers to Default Values
// Управление потоком выполнения
//-------------------------------------


//-------------------------------------
// Программный Сброс: Reset Registers to Default Values

void ADS1256_API_Reset(void)
{
// Проверка: если АЦП находится в режиме "потоковой конвертации", то он неспособен принимать Команды!
@@ -625,6 +631,57 @@ void ADS1256_API_Reset(void)



//-------------------------------------
// Послать команду SYNC: Synchronize the A/D Conversion
// (приостановить конвертацию... но быть готовым сразу же продолжить, по команде WAKEUP)

void ADS1256_API_Synchronize(void)
{
// Проверка: если АЦП находится в режиме "потоковой конвертации", то он неспособен принимать Команды!
if(ADS1256_API_IfDataContinuousMode())
return;

ADS1256_CS_ON(); //Разрешить передачу
ADS1256_Command_Synchronize();
ADS1256_CS_OFF(); //Отключить передачу
}



//-------------------------------------
// Послать команду STANDBY: Standby Mode / One-Shot Mode
// (усыпить АЦП, поместить в режим пониженного энергопотребления... при этом, конвертация конечно приостанавливается, но для ее возобновления требуется больше времени, чем после команды SYNC)

void ADS1256_API_Standby(void)
{
// Проверка: если АЦП находится в режиме "потоковой конвертации", то он неспособен принимать Команды!
if(ADS1256_API_IfDataContinuousMode())
return;

ADS1256_CS_ON(); //Разрешить передачу
ADS1256_Command_Standby();
ADS1256_CS_OFF(); //Отключить передачу
}



//-------------------------------------
// Послать команду WAKEUP: Complete Synchronization or Exit Standby Mode
// ([разбудить АЦП, если был в спящем режиме]... и сразу после этого, произвести конвертацию)

void ADS1256_API_WakeUp(void)
{
// Проверка: если АЦП находится в режиме "потоковой конвертации", то он неспособен принимать Команды!
if(ADS1256_API_IfDataContinuousMode())
return;

ADS1256_CS_ON(); //Разрешить передачу
ADS1256_Command_WakeUp();
ADS1256_CS_OFF(); //Отключить передачу
}




//-------------------------------------
// Настройки в регистре STATUS
@@ -6,8 +6,12 @@
// Настройка режимов микросхемы АЦП (высокоуровневое API модуля, синхронные операции)
//-------------------------------------

// Reset Registers to Default Values
void ADS1256_API_Reset(void);
// Управление потоком выполнения
void ADS1256_API_Reset(void); //Программный Сброс: Reset Registers to Default Values
void ADS1256_API_Synchronize(void); //Послать команду SYNC: Synchronize the A/D Conversion (приостановить конвертацию... но быть готовым сразу же продолжить, по команде WAKEUP)
void ADS1256_API_Standby(void); //Послать команду STANDBY: Standby Mode / One-Shot Mode (усыпить АЦП, поместить в режим пониженного энергопотребления... при этом, конвертация конечно приостанавливается, но для ее возобновления требуется больше времени, чем после команды SYNC)
void ADS1256_API_WakeUp(void); //Послать команду WAKEUP: Complete Synchronization or Exit Standby Mode ([разбудить АЦП, если был в спящем режиме]... и сразу после этого, произвести конвертацию)


// Вернуть заводской Идентификатор Микросхемы (значение битов "ID3, ID2, ID1, ID0" из регистра STATUS)
uint8_t ADS1256_API_GetDeviceID(void);

0 comments on commit ddff87d

Please sign in to comment.