Sensor Aktor Modul - Drehzahlberechnung bei versch. Spannungen


  • Mod

    da_miez schrieb:

    Weiß nicht, bin von anderen Foren irgendwie mit mehr Hilfsbereitschaft verwöhnt.
    Ich helfe nebenbei auch gerne und oft wo ich kann, mein Wissen bezieht sich halt mehr auf die Elektronik.

    Lol, wut?

    Du liest die mit wichtig markierten Threads nicht, du schreibst im komplett falschen Forum, du zeigst den relevanten Code nicht, du stellst keine klare Frage. Du hast echt Glück, dass ich geantwortet habe und nicht eines der Forenmitglieder mit noch direkterer Sprache und findest das schon unhöflich?

    Wenn dir jemand einen Berg Elektroschrott vor die Füße schmeißt und sagt "Mach mal!", wie reagierst du dann?



  • Entschuldig, aber diese Klammer war immer da.
    Ich hab da aber noch eine Frage zu Zeile 32:

    da_miez schrieb:

    }  // Diese Klammer war falsch gesetzt hat den Block nicht mit eingeschlossen 
    
    }  // Zeile 32: Und Wozu gehört diese Klammer  :confused:
    


  • Ja, seh ich ein. War wohl etwas genervt, weil ich den ganzen Tag an so nem dämlichen Tippfehler dransaß 🙄 huch



  • Darum ist eine saubere Einrückung wichtig.
    Und die (meisten) IDEs und Editoren zeigen dir auch die Klammerpaare an.



  • Ich nehme an der Beitragsersteller programmiert mit Visual C++ von M$.

    Wenn das so ist, ich hab z.Z. kein M$ - C oder C++ Compiler am Start, wird das als C-Quelltext von Microsoft akzeptiert? Oder muss das, ich bin mir nicht ganz sicher wie viel C99 Microsoft zufällig beherrscht, unter Microsoft als C++ compiliert werden?
    Andere Compiler dürften Probleme mit Besonderheiten von Microsoft-C in dem Quelltext haben.

    Das ist halt die Frage im realen C oder C++. Nur pur theoretisch den Standard oder auch die Besonderheiten grosser Compiler-Anbieter?

    Eh jetzt jemand hektisch noch mal verschiebt. Wenn ihr das konsequent machen wollt, müsst ihr mehrere 100 Beiträge dann hier im Forum verschieben 😃
    Es gab Tage hier im Forum, an denen fast die Hälfte der Beiträge in C oder C++ falsch gelandet sind und das manchmal trotz mehrfacher Verschiebe-Aktionen.

    Wie schon angedeutet, wie perfekt wollt ihr das durchziehen 😕

    Nehmt es leicht 😉

    MfG f.-th.



  • f.-th. schrieb:

    Wenn das so ist, ich hab z.Z. kein M$ - C oder C++ Compiler am Start,

    Wen interessiert das?



  • Auch wenn die Deadline des Threadstarters schon verstrichen ist - hier mal meine aufgeräumte Lösung seines Problems:

    #define _SIMULATION
    #include "SensorAktor.h"
    #include <stdio.h>   
    #include <windows.h>
    
    unsigned char Lesen(unsigned char kommando){
    	WriteCommand(0);
    	while (ReadStatus()==true);
    	WriteCommand(kommando);
    	while (ReadStatus()==false);
    	return ReadPortA();
    }
    
    void Schreiben(unsigned char kommando, unsigned char daten){
    	WriteCommand(0);
    	while (ReadStatus()==true);
    	WritePortB(daten);
    	WriteCommand(kommando);
    	while (ReadStatus()==false);
    }
    
    void main (void){
    double x,drehzahl,spannung;
    IsPCI6503Available();
    
    do{
    		do{
    			printf("Geben Sie eine Motorspannung zwischen 0 und 5 Volt ein: ");
    			scanf("%lf",&x);
    			if (x<0 || x>5)printf("\n Bitte geben Sie einen gueltigen Wert ein!\n");
    		} while (x<0 || x>5);
    	if (x==0){Schreiben(3,0);break;}
    
    	Schreiben(3,x*51);														  //Spannung setzen *255/5
    	Lesen(7);																   //Reset
    	Sleep(1000);
    	printf ("Drehzahl: %.2f U/min \n",drehzahl=(Lesen(8)+(Lesen(9)<<8))*15);	//(Low+High[LeftShift8])*60Sek/4 Schlitze
    	printf ("Motorspannung: %.2f V\n",spannung=(double)Lesen(4)/51);			//Spannung lesen /255*5
    }while(x!=0.0);
    }
    

    Läuft so - und ist auch näher an der Aufgabenstellung was die Verwendung von Lesen() und Schreiben() anbelangt. 🙂



  • aGe schrieb:

    Läuft so -

    Typischer naiver Anfängerglaube.

    - true/false ist C++, nicht C; wennschon, dann TRUE/FALSE aus windows.h
    - unsinnige Definition von x als double
    - unsinnige Gleichheitsvergleiche von double Variablen
    - sinnfreies break bei if()
    - void main() Anfängerschrott
    - oberhässliche Einrückung (ist das überhaupt eine Einrückung?)



  • true - false
    siehe: stdbool.h

    Quelle: Committee Draft N1570



  • Wutz schrieb:

    aGe schrieb:

    Läuft so -

    Typischer naiver Anfängerglaube.

    - true/false ist C++, nicht C; wennschon, dann TRUE/FALSE aus windows.h
    - unsinnige Definition von x als double
    - unsinnige Gleichheitsvergleiche von double Variablen
    - sinnfreies break bei if()
    - void main() Anfängerschrott
    - oberhässliche Einrückung (ist das überhaupt eine Einrückung?)

    Läuft != beste Lösung der Welt...
    Läuft == es funktioniert im Rahmen der Aufgabenstellung.

    - Über die Einordnung von C/C++ wurde hier im Thread schon diskutiert. Der Threadstarter betonte dabei, dass der Vorlesungsstoff und das Fach bei ihm eigentlich C++ Programmierung heißt. Es war deshalb auch ursprünglich im passenden Forenteil...

    - X ist laut Aufgabenstellung ein beliebiger Wert zwischen 0 und 5, wobei Kommawerte eindeutig zugelassen sind.
    - Die Gleichheitsvergleiche entstehen auch aus der Aufgabenstellung - so soll die Abfrage wiederholt werden wenn ein ungültiger Wert (außerhalb von 0 bis 5V) eingegeben wird.
    - Break ebenfalls laut Aufgabenstellung, da das Programm enden soll, sobald eine Spannung von 0 eingegeben wird.
    - void main () mag Anfängerschrott sein - sollte wohl aber bei einer Anfängervorlesung zu dem Thema nicht gänzlich unangebracht sein...
    - oberhässlich? hm... Ästhetik war nicht Teil der Aufgabenstellung und liegt sicher im Auge des Betrachters... dass der Threadstarter in seiner Lösung 2x mehr Zeilen gebraucht hat, würde ich persönlich auch nicht "oberschön" finden.


Anmelden zum Antworten