2 LEDs mit unterschiedlicher Frequenz



  • Hallo Leute,

    ich muss ein Programm in Assembler schreiben, wo 2 LEDs mit unterschiedlicher Frequenz blinken.
    Also LED1 0,5 s (ein/aus) und LED2 0,7s.

    Natürlich benutze ich den Timer, nur das Problem das ich habe ist, dass ich den Algorhytmus nicht auf die Reihe bekomme.
    Kann mir jemand helfen?

    Wahrscheinlich muss ich so ein Programm in einer Arbeit schreiben..., da wir uns überlegen sollten wie man es realisieren könnte...

    Danke schon mal.



  • Hi.

    Du koenntest es so realisieren, dass du 2Variablen (fuer jede LED eine) als Zaehler einsetzt und diese jedesmal, wenn der Timer ablaeuft veraenderst (increment/decrement).
    Wenn nun diese Zaehlervariablen jeweils einen bestimmten Wert erreicht haben, muesste der Status der entsprechenden LED veraendert werden.

    Nochmal eine Verbildlichung meines Vorschlags (Pseudoscript) :

    timer1=5
      timer2=7
    Schleife:
      sleep(0,1s)
      timer1=timer1-1
      timer2=timer2-1
      if timer1=0 then (
        ChangeStatusLED1
        timer1=5
      )
      if timer2=0 then (
        ChangeStatusLED2
        timer2=7
      )
    goto Schleife
    


  • Hallo,

    danke Dir. Warum ich das Problem habe liegt einfach daran, weil ich bisher nur mit einem Timer gearbeitet habe + Interrupts...

    Die Zählveriable kann ich ja einfach z.B. so ausrechnen, oder?
    (1000 000 * 0,5s)/65536 --> 8

    Und kann dann die 8 in ein Register laden usw...?



  • Sry, solange ich nicht weiss, auf welchem System du mit welchem Timer, wie programmierst, kann ich dir da schlecht weiterhelfen.



  • Nutze das Programm Ride IDE und nutze einen 16 Bit Timer. Man kann ja auch den 8 Bit Timer nutzen. Aber ich nehme immer 16 Bit, da ich nicht so genau weiß, wonach man ihn wählen sollte (ob 16 bit oder 8 bit)



  • Mit System war eigentlich der rechner gemeint.
    Es gibt RhIDE für Assembler und C unter Linux, DOS, für Intel, AVR's, PICs und wahrscheinlich noch einiges mehr..


Anmelden zum Antworten