Запись в регистры , ошибка компиляции
- Войдите на сайт для отправки комментариев
Чт, 14/02/2019 - 09:11
Всем знатокам добрый день!
При компиляции скетча компилятор "ругается" на выражения 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; }
Из чего становится понятно, что скетч рабочий? И что эти ваши readbigRegister означают вообще?
Уважаемый sadman41!
Скетч я взял из американского форума , где пользователь утверждает, что компилировал и заливал в мк.
Честно, я и сам не могу понять что означают эти выражения...
И не переменные, и не функции...
Думаю, что продуктивней будет поинтересоваться насчёт этой абракадабры у того самого пользователя, что "заливал" некомпилирующийся скетч.
Спасибо за ответ Вам, но , к сожалению, форум этот не действует;(
Уважаемый, покопайтесь в тех местах, где скопирастили программу. Похоже что вы недокопировали часть подпрограмм.
mykaida,спасибо Вам за ответ!
Сейчас проверю!:)
Уважаемый, покопайтесь в тех местах, где скопирастили программу. Похоже что вы недокопировали часть подпрограмм.
больше похожу на самопальную библиотеку SPI или доработанную напильником под эту задачу.
Мда, годы идут, а ничего не меняется. Первая же ссылка в Гугле по первой строке приведенного Вамикода, ведет на forum.arduino.cc где есть код этих процедур. Смотрели?
Спасибо огромное всем отозвавшимся!!!
Насчет forum.arduino.cc -пока не заглядывал. Обязательно посмотрю!
ничего не меняется. Первая же ссылка в Гугле ... Смотрели?
Ну, дык
я запретил гуглить, яндексить, чебурашить.