Fehler bei Funktionen mit Rückgabewert in einer Klasse!
-
Hallo
ich bin neu hier und versuche grade meine erste Klasse anzulegen .
Ich habe ein Problem mit Funktionen mit Rückgabewert.
Was mache ich falsch?
Es geht nur um die OffTime_Function!LG Michael
Hier die LED.h Datei
#include <Arduino.h> #pragma once class LED_CLASS { public: LED_CLASS(); uint16_t ledPin; boolean ledState; uint32_t Micros_NOW; uint32_t Micros_CHANGE; uint32_t OnTime; uint32_t OffTime; uint32_t Prd; void ON(); void OFF(); uint32_t OffTime_Function(uint32_t Prd, uint32_t OnTime); ~LED_CLASS(); };
und hier die LED.cpp Datei
#include <Arduino.h> #include "LED.h" LED_CLASS::LED_CLASS() { ledPin = 17; ledState = LOW; Micros_NOW = 0; Micros_CHANGE = 0; OnTime = 1000; OffTime = 0; Prd = 62500; } LED_CLASS::~LED_CLASS() { } void LED_CLASS::ON() { digitalWrite(ledPin, ledState); } void LED_CLASS::OFF() { digitalWrite(ledPin, ledState); } void LED_CLASS::OffTime_Function(uint32_t Prd,uint32_t OnTime) { OffTime = Prd - OnTime; return OffTime; }
Fehler in der LED.cpp Datei
void LED_CLASS::OffTime_Function(uint32_t Prd,uint32_t OnTime)
Zeile 33 Die Deklaration ist nicht Kompatibel!return OffTime;
Zeile 37 Der Rückgabewerttype stimmt nicht mit dem Funktionstype überein.
Ich verstehe nicht was das gemeint ist die Typen sind doch alle uint32_t ??Danke für eure Hilfe!
LG Michael
-
Kuck dir doch mal den Rückgabewert an.
-
Hier musst du nochmals genau hinschauen:
void LED_CLASS::OffTime_Function(uint32_t Prd,uint32_t OnTime)Was steht in der Klassen-Definition?
Ist es kompatibel zur Definition der gezeigten Methode?
-
uint32_t OffTime_Function(uint32_t Prd, uint32_t OnTime);
ich kann den Fehler nicht sehen !
-
OK hab den Fehler gefunden das Void war falsch !
So gehts !
uint32_t LED_CLASS::OffTime_Function(uint32_t Prd,uint32_t OnTime)
{
OffTime = Prd - OnTime;return OffTime;
}Danke aber am Anfang ist das nicht so einfach
LG Michael
-