Hi , Ich habe mir einen Programmer gebastelt und arbeite im Moment mit dem CodeVision Compiler und das funktioniert auch ganz gut. Bisher habe ich ein bissl mit LEDs rumgespielt habe den gesamten PortC mit LEDs versehen und der PORTD hat hier Taster. Nach verschiedenen rumspielereien wollte ich mal wissen ob es ein paar Tutorials gibt die auch was bringen ? Ergo die Interupt geschichten oder ähnliches ? Ich habe in C jetzt noch nicht so die Ahnung. Des weiteren schaffe ich es auch nicht ein "einfaches" Lauflicht zu coden. Wenn ich sowas mache : PORTC = a ; delay_ms(speed); a = a + 1 ; Dann arbeitet der µC ja wie ein Zähler aber wie kann ich das mit wenigen Zeilen hinbekommen das er als Lauflicht fungiert ohne 7 Zeilen zu nutzen die ich dann durchgehe ? Habe es zuerste mit dem Bitshiften versucht also "a = a << 1" nur will das leider auch nicht so recht. Kann mir da mal jemand helfen ?
Hey Robert, wie sieht denn dein Schleifenkonstrukt um a = a << 1; aus? Du musst natürlich dafür sorgen, dass a wieder mit 1 initialisiert wird, nachdem das MSB rausgeschoben wurde. Gruß, Olaf
Ich hab das nun ein bisschen anderst gelöst denke aber mal das der Code
nicht gerade sauber ist ;P
unsigned s1, s2, s3, p1, p2, p3, p4, ;
s1 = PIND.5 ;
s2 = PIND.6 ;
s3 = PIND.7 ;
p1 = PIND.0 ;
p2 = PIND.1 ;
p3 = PIND.2 ;
p4 = PIND.3 ;
// Speed Selection
if ( s1 == 0 ) speed = 100 ;
if ( s2 == 0 ) speed = 200 ;
if ( s3 == 0 ) speed = 500 ;
if (( s1 != 0 ) && ( s2 != 0 ) && ( s3 != 0 )) speed = 50 ;
// PROGRAM 1
// Direction Selection
if ( direction == 1 )
{
i = 0xFF - a ; // LED Inverter
PORTC = i ; // Ausgabe
delay_ms(speed) ; // Pause
a = a * 2 ; // LedCycler
if ( a == 0x80 ) direction = 0 ; // If EndofLeds
toogle Direction
};
if ( direction == 0 )
{
i = 0xFF - a ; // LED Inverter
PORTC = i ; // Ausgabe
delay_ms(speed) ; // Pause
a = a / 2 ; // LedCycler
if ( a == 0x01 ) direction = 1 ; // If EndofLeds
toogle Direction
};
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.