- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 12

Thema: Code für eine Fußraumbeleuchtung im LKW

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Hallo Live85
    nimm mal das "return 0;" raus.
    Das gehört da nicht rein.....
    Ein Return brauchst Du nur in Unterfunktionen die vom Hauptprogramm oder woher auch immer aufgerufen werden.
    Du hast ja nur eine einzige Schleife, wo soll er dann landen mit dem Return.

    sorry, das return steht ja hinter der while Schleife, da stört es keinen, da kommt der code ja nie an.....
    Da sind aber ein paar geschweifte Klammern zu viel, das hat mich verwirrt.
    Du hast 2 mal { bei dem while und am Ende dann auch zwei mal } das tut nicht weh, ist aber unnötig und verwirrt.
    Dein return am Ende darf dort stehen und hat oftmals auch seine Berechtigung. Das ist eigentlich für Programme zum Beispiel auf nem PC
    da gibt man dann beim Verlassen des Programms eine Wert 0 zurück um zu signalisieren dass das Programm ordnungsgemäß
    verlassen wurde oder auch ein Übergabewert für andere Programme (Der sogenannte Exitcode)
    Dein Programm läuft aber ständig und sollte dort niemals ankommen.


    Andreas hat recht, das b benutzt Du ja garnicht. Da liegt das Problem

    Ein schönes Wochenende
    Siro
    Geändert von Siro (27.01.2018 um 08:35 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Zitat Zitat von Siro Beitrag anzeigen
    nimm mal das "return 0;"
    Das stimmt so nicht! main ist eine Funktion (vom Typ int) und in eine Funktion MUSS ein Return rein, sonst warnt der Compiler!
    Man sollte nur dafür sorgen, dass der Ablauf dort nie hin kommt, was in einem sinnvoll strukturiertem Programm auch nicht der Fall sein wird.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Habe ich korrigiert Andreas, das hatte ich falsch interpretiert, ich dachte er springt aus der While Schleife.
    Geändert von Siro (27.01.2018 um 08:36 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2018
    Beiträge
    9
    Hallo, habe die Fehler beseitigt und jetzt geht alles wie gewollt, ich bin davon ausgegangen das OCR0A dann automatisch zu "b" wird da der wert "10" ist, habe dem ganzen wohl zuviel Logisches denken zugemutet und den absatz im AVR Buch vollkommen falsch interpretiert ...
    Auf dem Ozi kann ich auch schön sehen wie sich das PWM Signal ändert....

    Danke für die Tipps

    Code:
      
     #include <avr/io.h>
     #define F_CPU 1200000UL  // 1,2 MHz
     #include <util/delay.h>
    
    
    
     int main (void)
     {
    	 DDRB =(1<<PB0);                                                             // Ausgang PB0
    
    	 TCCR0A=(1<<COM0A1) | (1<<WGM00) | (1<<WGM01);     // PWM Phase Korrigieren, OCR0A an TOP setzen
    	 TCCR0B=_BV(CS01) ;                                                        // Prescaler 8
    
    	 int a=5;                                                                            // Min Wert für Lichtstärke
    	 int b=255                                                                         // Max Wert für Lichtstärke
    
             while (1) 
    			 
    {
    		 OCR0A = a;                                                              // Startpunkt mit Min Lichtstärke
    		                                 
    		 if (PINB & (1<<PB3))                                                 // Prüfe auf High Signal an PB3
    		
    		 {
    			if (a <255) a++;                                                // Wenn Wahr dann erhöhe in  5s auf den Wert "b"
    			 _delay_ms(5);			 
    		 }
    
    		
    		 else // (!(PINB & (1<<PB3)))                                     // Prüfe ob PB3 Low wenn Wahr zurück zu "a"
    		 
    		 {
    			 if (a >10) a--;                                                    // Wenn solange der Wert Max gößer als Min dann a--
    			 _delay_ms(5);	
    		 }
    }	 
    	 return 0;
    
     }

Ähnliche Themen

  1. PHP Code: Buch, Frameworks um in Zukunft saubereren Code zu schreiben
    Von Thor_ im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 1
    Letzter Beitrag: 21.11.2014, 17:25
  2. eine Ecke für Code Schnippsel
    Von CODrix im Forum Anregungen/Kritik/Fragen zum Forum und zum Wiki RN-Wissen
    Antworten: 3
    Letzter Beitrag: 16.07.2013, 12:32
  3. [ERLEDIGT] Eine Bitte bezüglich des Code-Tag Buttons
    Von TobiKa im Forum Anregungen/Kritik/Fragen zum Forum und zum Wiki RN-Wissen
    Antworten: 4
    Letzter Beitrag: 23.03.2011, 14:44
  4. Code-Schloss mit Tastatur, LCD und Logger. Code-Beispiel
    Von Stray_Cat im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 2
    Letzter Beitrag: 05.06.2009, 10:31
  5. Bascom Code in GCC Code umschreiben
    Von Martin. im Forum C - Programmierung (GCC u.a.)
    Antworten: 8
    Letzter Beitrag: 13.07.2008, 19:14

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests