PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe zu diesem Programm



Lame
15.06.2005, 10:48
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:

/*
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 :-s

PicNick
15.06.2005, 16:00
wenn dir Kommentare helfen:


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 ?

Lame
15.06.2005, 21:45
Danke für die schnelle Antwort werde das gleich morgen mal ausprobieren

thx =D>