void pause(uns16 ms) // Unterprogramm zum Abwarten einer
{ // angegebenen Anzahl von Millisekunden
while(ms) // Schleife verlassen, wenn ms=0 ist
{
OPTION = 2; // Vorteiler auf 8 einstellen
TMR0 = 131; // 125 * 8 = 1000 (= 1 ms)
while (TMR0); // Abwarten einer Millisekunde
ms--; // "ms" mit jeder Millisekunde erniedrigen
}
}
void main(void) // Hier beginnt das Hauptprogramm
{
char i;
TRISB = 0b.0000.0000; // PortB als Ausgang definieren
PORTB = 0;
Sprungmarke:
PORTB.0 = 1 ; // Bit 0 von PortB setzen
pause(500); // LED 0 halbe Sekunde leuchten lassen
for (i=0 ;i<7 ;i++) // folgende Befehle 8-mal wiederholen
{
PORTB = PORTB << 1 ; // 1 kommt ins nächste Bit links
pause(500); // jede LED halbe Sekunde leuchten lassen
}
PORTB = 0; // Alle LEDs löschen
PORTB.7 = 1 ;
pause(500);
for (i=0 ;i<7 ;i++)
{
PORTB = PORTB >>1 ;
pause(500);
}
PORTB = 0;
pause(500);
goto Sprungmarke;
}
Ich möchte jetzt mit jeden einmaligen Durchlauf die Zeit verkürzen. Jetzt könnte man die pause(xxx) immer kleiner machen. Das muß doch auch intelligenter gehen. Weiterhin würde ich festlegen wollen wie lange der Rechts/Linkslauf des Lichtes gehen soll bis sich die Zeit verkürzt. Hat wer ne Idee???
Hallo,
ich danke dir für deine Idee aber beim assemblieren macht der vorab viele Fehler. Ich schau mir das aber mal an. Ist das für den PIC16f84 gedacht?
Hallo,
ich hoffe doch nicht, Du hast versucht die .TXT Datei zu "Compilieren" das geht natürlich nicht. Das war nur ein ungefäre Anleitung, aber kein kompletter Code. Ich habe mal versucht, anhand deines Codes eine Compilierbare .C Datei zu erstellen. Das sollte eigentlich nun funktionieren.
....ne, das war mir klar das der mit .txt nix anfangen kann...
Danke der Mühe aber es kommt:
uns16 AufAb = 100; // bei jedem Durchlauf soll die Zeit um 100 milli Sekunden veraendert werden
^------
Error Versuch1.c 9: Initialized static and global RAM variables are not supported
Na Respekt Siro!!!! Ja, das funktioniert super!!! Die Anlaufzeit könnte etwas schneller gehen ( soll ein elektronisches Pendel simulieren mit LED und daher wäre die Zeit bis zum "Voll" schwingen kürzer, dann lange kurz schwingen und Auspendeln) Aber, ich sage dir echt vielen Dank!!!!
Ist mein Compiler veraltet????
Lesezeichen