-
        

Ergebnis 1 bis 3 von 3

Thema: Hilfe zu diesem Programm

  1. #1

    Hilfe zu diesem Programm

    Anzeige

    Hallo habe mir den AATIS Roboter nachgebaut die Demo Programme fnktionieren einwandfrei, nur hab ich schwierigkeiten mit dem Progamm.

    Also die Demo hier ist ein LED Lauflicht das zwei LED´s anteuert. Das geht auch will jetzt aber nur wissen wie ich eine einzele LED ansteuer ohne zu blinken einfach nur LED an. Wenn jemand zeit hat und sich damit auskennt könnte er dann mir das Programm hier im forum so schreiben das ich das kapiere jede Zeile jeden Buchstaben jede Zahl.

    Das Programm:
    Code:
    /*
    	Titel:		LED-Lauflicht
    	Funktion:	LED-Lauflicht
    	Autor:		Gunther May, DL3ABQ
    	Datum:		01/2004
    	Prozessor:	AT90S8535/ATMega8535
    	Lizenz:		GNU Public License (gpl.txt)
    */
    
    #include <io.h>
    #include "..\lib\mydefs.h"
    #include "..\lib\lcd.h"
    #include "..\lib\sensor.h"
    #include "..\lib\delay.h"
    
    int main(void)
    {
    
    	u08 i,k;
    
    	i = 0;
    
    	while(1)
    	{
    		i= (i+1) % 6;
    		sens_setLED(i%3, (i>=3));
    		for (k=0; k<10; k++)
    			delay(255);
    	}
    
      return 0;
    }
    please help me

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    wenn dir Kommentare helfen:
    Code:
    u08 i,k;      // zwei 8-Bit Variable  ( also Bytes) werden deklariert
    
    i = 0;         // i = 0 (Anfangsbedingung
    
    while(1)     // solange 1 nicht gleich 0 ,  also ewig
    { 
    i= (i+1) % 6;          // i wird:   der Rest, wenn ( i+1)   ganzzahlig durch 6 dividiert wird. 
    (Also ist i   0, 1, 2, 3, 4, 5, und dann wieder 0, 1 , -....)
    
    sens_setLED(i%3, (i>=3)); 
    was die funktion genau macht, kann ich dir nicht sagen. Die kriegt zwei Werte mit:    den  3- rest von i  ( also 0, 1, 2)   und
             einen Nuller, wenn i grad kleiner als 3 ist , sonst
             einen Einser.
    
    for (k=0; k<10; k++)   ;  hier wird 10 mal ein Delay mit 255 aufgerufen
    delay(255); 
    }
    Zusammengefaßt:
    die Schleife lauft ewig
    bei jedem Lauf wird i um eins größer, isses aber bei 6, geht's wieder bei null los
    eine Funktion wird aufgerufen mit
    1...sens_set (0, 0)
    2...sens_set (1, 0)
    3...sens_set (2, 0)
    4...sens_set (0, 1)
    5...sens_set (1, 1)
    6...sens_set (2, 1)
    eine Pause, bis er bis 2550 gezählt hat (10 * 255)

    dann wieder von vorn

    hilft das ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Danke für die schnelle Antwort werde das gleich morgen mal ausprobieren

    thx =D>

Berechtigungen

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