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



  • 👍


Anmelden zum Antworten