Запись в регистры , ошибка компиляции

Belove
Offline
Зарегистрирован: 14.02.2019

Всем знатокам добрый день!

При компиляции скетча компилятор "ругается" на выражения writeByteRegister и readbigRegister.

Подскажите, пожалуйста, как исправить ошибку. Скетч рабочий, как определить эти выражения?

Скетч прилагаю.

Спасибо!


/* Hardware Connections Arduino <--> AD7714
PIN 1 -> SCLK : external clock SPI Arduino
PIN 2 -> MCLK IN : 2.4576 MHz by crystal (input)
PIN 3 -> MCLK OUT : 2.4576 MHz (output)
PIN 4 -> POL = 0: first transition of the serial clock in a data transfer operation is from a low to a high
PIN 5 -> (SYNC) = 1 : synchronization of the digital filters and analog modulators
PIN 6 -> (RESET) : Reset (PIN 30) Arduino
PIN 7/8/9/10 -> AIN1/AIN2/AIN3/AIN4 : Analog Input Channel
PIN 11 -> (STANDBY) = 1 : disable Standby
PIN 12 -> AVdd = 3.3 V
PIN 13 -> BUFFER = 0 : analog input is shorted out
PIN 14 -> REF IN(-) = AGND : negative input of the differential reference input
PIN 15 -> REF IN(+) = AVdd/2 : positive input of the differential reference input
PIN 16/17 -> AIN5/AIN6 : Analog Input Channel
PIN 18 -> AGND = GND
PIN 19 -> (CS) : chip select SPI (PIN 52) Arduino
PIN 20 -> (DRDY) : logic input of the AD7714
PIN 21 -> DOUT : serial data output, MISO SPI Arduino
PIN 22 -> DIN : serial data input, MOSI SPI Arduino
PIN 23 -> DVdd = 3.3 V
PIN 24 -> DGND = GND
*/

// SPI library
#include <SPI.h>

// define channels AD7714
#define CH0 0x00 // Pseudo Differential AIN1 - AIN6
#define CH1 0x01 // Pseudo Differential AIN2 - AIN6
#define CH2 0x02 // Pseudo Differential AIN3 - AIN6
#define CH3 0x03 // Pseudo Differential AIN4 - AIN6
#define CH4 0x04 // Fully Differential AIN1 - AIN2
#define CH5 0x05 // Fully Differential AIN3 - AIN4
#define CH6 0x06 // Fully Differential AIN5 - AIN6
#define CH7 0x07 // Test Mode AIN6 - AIN6

// constants and variables:
const int dataReady = 53;
const int CS = 52;
const int RESET = 30;

uint8_t ain;
uint8_t conf;
uint8_t channel[8] = {CH0, CH1, CH2, CH3, CH4, CH5, CH6, CH7};

uint32_t measur;
uint32_t conf3;
uint32_t temp;

bool bits24 = false; // is dataregister configured for 24bits?

char i;
int a = 0;

void setup() {
  Serial.begin(9600);

  // -------- SPI initialization
  pinMode(CS, OUTPUT);  // Set the SS pin as an output
  digitalWrite(CS, HIGH);  // Set the SS pin HIGH
  SPI.begin();  // Begin SPI hardware
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(210);  // Slow down SPI clock
  SPI.setDataMode(SPI_MODE2);

  // initalize the  data ready and chip select pins:
  pinMode(dataReady, INPUT);
  pinMode(RESET, OUTPUT);

  digitalWrite(RESET, LOW);
  delay(100);
  digitalWrite(RESET, HIGH);


  // configure filter high and low register AD7714
  for (i = 0; i < 7; i++) {

    if (i == 4 || i == 5) continue;

    ain = channel[i];
    Serial.println("Init channel: CH" + String(ain));

    //  delay(50);

    writeByteRegister(2, 0x81); // filter high register

    writeByteRegister(3, 0x80); // filter low register
  }

  // channels calibration AD7714
  for (i = 0; i < 3; i++) {
    ain = i;
    writeByteRegister(1, 0x20);
    while (digitalRead(dataReady));
    while (!(digitalRead(dataReady)));
  }

  Serial.println("Calibration register");
  conf3 = readbigRegister(6);
  Serial.println(conf3, HEX);
  conf3 = readbigRegister(7);
  Serial.println(conf3, HEX);
}

void loop() {

  delay(1000);
  
  Serial.println("Acquisition " + String(a));

  for (i = 0; i < 7; i++) {
    if (i == 4 || i == 5) continue;

    ain = channel[i];
    measur = readbigRegister(5);
    while (!(digitalRead(dataReady)));
    while (digitalRead(dataReady));
    while (!(digitalRead(dataReady)));
    while (digitalRead(dataReady));

    Serial.print("Channel CH" + String(ain) + " : ");
    Serial.print(measur, HEX);
    Serial.println(" = " + String((float(measur) / 65536.0) * 3.3) + " V");
//    Serial.println(" = " + String((float(measur) / 16777216.0) * 3.3) + " V");
  }

  a = a + 1;
}

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Из чего становится понятно, что скетч рабочий? И что эти ваши readbigRegister означают вообще?

Belove
Offline
Зарегистрирован: 14.02.2019

Уважаемый sadman41!

Скетч я взял из американского форума , где пользователь утверждает, что компилировал и заливал в мк.

Честно, я и сам не могу понять что означают эти выражения...

И не переменные, и не функции...

sadman41
Offline
Зарегистрирован: 19.10.2016

Думаю, что продуктивней будет поинтересоваться насчёт этой абракадабры у того самого пользователя, что "заливал" некомпилирующийся скетч. 

Belove
Offline
Зарегистрирован: 14.02.2019

Спасибо за ответ Вам, но , к сожалению, форум этот не действует;(

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый, покопайтесь в тех местах, где скопирастили программу. Похоже что вы недокопировали часть подпрограмм.

Belove
Offline
Зарегистрирован: 14.02.2019

mykaida,спасибо Вам за ответ!

Сейчас проверю!:)

Гриша
Offline
Зарегистрирован: 27.04.2014

mykaida пишет:

Уважаемый, покопайтесь в тех местах, где скопирастили программу. Похоже что вы недокопировали часть подпрограмм.

больше похожу на самопальную библиотеку SPI или доработанную напильником под эту задачу.

T.Rook
Offline
Зарегистрирован: 05.03.2016

Мда, годы идут, а ничего не меняется. Первая же ссылка в Гугле по первой строке приведенного Вамикода, ведет на forum.arduino.cc где есть код  этих процедур. Смотрели?

Belove
Offline
Зарегистрирован: 14.02.2019

Спасибо огромное всем отозвавшимся!!!

Насчет forum.arduino.cc -пока не заглядывал. Обязательно посмотрю!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

T.Rook пишет:

ничего не меняется. Первая же ссылка в Гугле ... Смотрели?

Ну, дык

Клапауций 232 пишет:

я запретил гуглить, яндексить, чебурашить.