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.