Hallo, Ich habe einen PIC16F877 mit 20MHz und ich benutze CC5x. Ich hab zwei LED's die abwechselnd blinken. Am Anfang mit 1ms Abstand und dann werden die Abstände immer verdoppelt bis 1024ms. Dann sollte er eigentlich die Abstände bis 1ms wieder halbieren, um dann wieder von vorn anzufangen. Das tut er aber nicht! Ich hab schon eine Kontroll-LED eingebaut die angeht wenn er anfängt runter zu zählen. Komisch ist, dass die Kontroll-LED zwar angeht er, aber das Blinken nicht wieder schneller wird. Das kann ich mir nicht erklären, da die Kontroll-LED erst auf high geht, wenn er anfängt zu teilen. Dazu bitte unbedingt den angehängten Sourcecode ansehen!!! Danke für die Hilfe!
Sorry in der Datei isn Fehler! Hier aber die richtige ( geht trotzdem net!)
Dann geh Deinen Spaß doch einmal Schritt für Schritt durch: Wenn Du bei 1024 bist, setzt Du Dein Flag, daß es wieder abwärts gehen soll, aber den Wert läßt Du auf 1024, damit wird der Teil, wo runtergezählt wird, nie mehr erreicht.
ist mir grade selbst aufgefallen. Danke trotzdem! funzt das denn so? siehe Anhang
Ja, aber warum so umständlich? if (up_down) { time <<= 1; if (time == 1) up_down = 0; } else { time >>= 1; if (time == 1024) up_down = 1; } Wenn man so programmiert statt mit solchen Bedingungskaskaden, 1) kann es nicht passieren, daß man eine Zustandskombination vergißt 2) kann man auf einen Blick verstehen, was da passiert 3) wird der Code kleiner
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.