-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Programmieren ohne "Waitms"

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    30
    Beiträge
    263

    Programmieren ohne "Waitms"

    Anzeige

    Moin,
    In Beispielprogrammen zu Lauflichtern, Schleifen etc. wird immer Waitms Verwendet.
    Da ich nun ein Lauflicht als "Unterprogramm" schreibe möchte will ich waitms vermeiden da der uC in dieser Zeit ja nichts tut außer warten.

    Hat jemand eine Ahnung unter diesen Bedieungen ein 4 Kanal Lauflicht programmieren kann?

    Gruss

    Alex

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    30
    Beiträge
    373
    hallo alex,
    nimm doch einen timer und zähle bei jedem überlauf eine variable um 1hoch bis sie einen bestimten wert erreicht hat. dann setzt du sie wieder auf 0. dann kannst du je nach lust und laune bei z.B 100 timerüberläufen einen ausgang schalten und wieder löschen. ich hoffe ich konnte es so halbwegs erklären.
    mfg franz

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Ich falle fast vom Glauben ab ... ein Bascom Programmierer der es ohne waitms versuchen will

    Um soetwas zu realisieren benötigt man:
    • einen Timer
    • eine oder mehrere Zustandsvariablen
    • eine oder mehrere Zählvariablen


    Mit dem Timer legt man das minimale Zeitfenster fest, welches zur Verfügung stehen soll.

    Im Hauptprogramm werden nur die Zustandsvariablen abgefragt und gegebenfalls die passenden Aktionen gestartet.

    In der Interupt Routine des Timers zählt man nun seine Zählvariablen runter. Ist eine auf 0 wird eine entsprechende Info in die Zustandsvariablen geschrieben, und die Zählvariable neu gesetzt.

    Vom Prinzip her ist es recht einfacher Code ... zumindest in Assembler.

    Grüße, Hanni
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    18.08.2005
    Ort
    Steiermark
    Alter
    45
    Beiträge
    12
    Hi,

    einen WAIT-Befehl verwende ich höchstens zum initialisieren irgendwelcher Hardware, sonst wird alles über Timer-ISRs gelöst!

    Gruß
    Günter

  5. #5
    1hdsquad
    Gast
    Ja, wait ist ***, weil es z.B. bei einem Interrupt weiter wartet, bis die Zeit um ist...
    MFG

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2006
    Beiträge
    183
    nimm winavr-c, dort gibt es genug beispiele, wunderbar.

    mit Bascom ...lol....

    mfg

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von robby-fant
    nimm winavr-c
    Hier gehts aber nicht um Bascom, Assembler oder C ....
    Hier geht es darum, wie man es in Bascom realisieren könnte !!

    Grüße,
    Hanni
    Grundregeln des Forenpostings:
    1. Nutze niemals die Suchfunktion!
    2. Überprüfe niemals die Topics nach Ähnlichkeiten!
    3. Schreibe alles in hellgelb!

  8. #8
    1hdsquad
    Gast
    Lol, der Sprachenkonflikt

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    46
    Beiträge
    2.236
    Ja, wait ist ***, weil es z.B. bei einem Interrupt weiter wartet, bis die Zeit um ist..
    Wie das ? wird da vor wait... ein cli gemacht und die Interrupts auf Eis gelegt ?
    Software is like s e x: its better when its free.
    Linus Torvald

  10. #10
    1hdsquad
    Gast
    Ich habe das mal ausprobiert, vor dem Interrupt hat er zuende gewartet. Der Tastendruck war dann eine halbe Sekunde verzögert...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •