Привет всем,
У меня большие проблемы с объявлением некоторых параметров в классе, который я определил в заголовочном файле
Я использую Raspberry Pi с C ++ и пытаюсь реализовать некоторые объекты через класс.
Поэтому у меня есть:
мой основной cpp файл, где я вызываю объект (он работает, я уверен, об этом вы увидите)
файл класса cpp с именем "Motorcontrol01. cpp"
файл заголовка с именем "Motorcontrol01.h"
Мой код более сложен, чем то, что я здесь показываю, но я упростил его для целей тестирования и он все равно не работает -_:
"Motorcontrol01. cpp":
//###################################################################################
// Class for creating the different shift register entry data
//###################################################################################
#include <iostream> //for Cout to display stuff
#include <chrono> //library for counting time
#include <thread> //for multithreading
#include <vector>
#include <wiringPi.h> //Raspberry pi GPIO Library
#include "MotorControl01.h" //looking in current dirrectory
MotorControl::MotorControl(){ //constructeur
std::vector<std::vector<bool>> DataArr(16, std::vector<bool>(8, 0)); //the vector of vectors with boolean values in it for transmitting the motors control data
//###################################################################################
// GPIO Pins definition
//###################################################################################
int SPser = 13, SPclk = 19, SPrclk = 26; //Define the output pins used for the main shift registers
int PWMSPclk = 17, PWMSPrclk = 18; // define the output pins to control the PWM shift registers
}
void MotorControl::SendDataPWM(std::vector<std::vector<bool>> DataArr){
// Initialize wiringPi and allow the use of BCM pin numbering
wiringPiSetupGpio();
//initialize the pins
pinMode(SPser, OUTPUT);
pinMode(SPclk, OUTPUT);
pinMode(SPrclk, OUTPUT);
pinMode(PWMSPclk, OUTPUT);
pinMode(PWMSPrclk, OUTPUT);
while (1) {
digitalWrite(PWMSPclk, HIGH); //sets the pin to a HIGH value
digitalWrite(PWMSPclk, LOW);
std::cout << "PWM SP CLK"<< PWMSPclk <<'\n';
digitalWrite(PWMSPrclk, HIGH); /
digitalWrite(PWMSPrclk, LOW);
std::cout << "PWM SP R CLK"<< PWMSPrclk <<'\n';
digitalWrite(SPclk, HIGH);
digitalWrite(SPclk, LOW);
std::cout << "SP CLK"<< SPclk<<'\n';
digitalWrite(SPrclk, HIGH);
digitalWrite(SPrclk, LOW);
std::cout << "SP R CLK"<< SPrclk<<'\n';
}
}
"Motorcontrol01.h":
#ifndef DEF_MotorControl
#define DEF_MotorControl
#include <vector>
class MotorControl{
public:
MotorControl(); //Constructeur
void SendDataPWM(std::vector<std::vector<bool>> DataArr);
private:
std::vector<std::vector<bool>> DataArr;
int mFrequency;
int mGPIOOutputNb;
int SPser, SPclk, SPrclk; //Define the output pins used for the main shift registers
int PWMSPclk, PWMSPrclk;
};
При компиляции я получил несколько предупреждений о том, что переменные "SPser, SPclk, SPrclk, PWMSPclk PWMSPrclk "определены, но не используются ...
, и когда я запускаю программу, она отображает это:
I Должно быть, где-то сделал ошибку, но я действительно понятия не имею, где ...
Или есть кое-что, что я неправильно понял в уроках. Я читал о предмете классов и объектов ...
Может ли кто-нибудь выделить очевидные вещи, которые я не понял? :)
Заранее благодарим за помощь!