Triangular Clock

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Triangular Clock

      Moin Jungs und Mädels,

      hier mal die Grundlagen für eine Triangular Clock.

      Idee von Jörg Pretz, RWTH Aachen University

      Es bot sich ein zerschnittener WS2803 Stipe an.



      BASCOM-Quellcode

      1. 'PM rot
      2. 'AM grün
      3. '
      4. ' 6h
      5. ' 2h 2h
      6. ' 30m 30m 30m
      7. ' 6m 6m 6m 6m
      8. ' 1m 1m 1m 1m 1m
      9. '
      10. 'https://web.physik.rwth-aachen.de/user/pretz/binary_clock/ludus/jpretz_binary_clock.htm
      11. 'https://dodona.ugent.be/en/exercises/866515959/
      12. $Regfile = "m32adef.dat"
      13. $Crystal = 8000000
      14. $hwstack = 40
      15. $swstack = 16
      16. $framesize = 32
      17. Config RAINBOW=1, RB0_LEN=15, RB0_PORT=PORTd,rb0_pin=2
      18. Dim Color(3) as Byte
      19. R alias Color(_base) : G alias Color(_base + 1) : B alias Color(_base + 2)
      20. const numLeds=15
      21. RB_SelectChannel 0
      22. declare sub Bitmuster_zeile(byval Zeile as Byte , byval Zeilenminuten as Word)
      23. Dim Stunde as Byte
      24. Dim Minute as Byte
      25. Dim Gesamtminuten as Word
      26. Dim Restminuten as Word
      27. Dim Anzahl as Word
      28. Dim Bitmuster as Word
      29. Dim i as byte
      30. dim pos as byte
      31. Dim n as Byte
      32. Stunde = 23
      33. Minute = 59
      34. Bitmuster = 0
      35. 'AM oder PM rot oder grün
      36. if Stunde > 11 then
      37. Stunde = Stunde - 12 : R = 100 : G = 0 : B = 0
      38. else
      39. R = 0 : G = 100 : B = 0
      40. end if
      41. Gesamtminuten = Stunde * 60
      42. Gesamtminuten = Gesamtminuten + Minute
      43. call Bitmuster_zeile(0,360)
      44. call Bitmuster_zeile(1,120)
      45. call Bitmuster_zeile(3,30)
      46. call Bitmuster_zeile(6,6)
      47. call Bitmuster_zeile(10,1)
      48. for i = 1 to 15
      49. if Bitmuster.i = 1 then
      50. n = i - 1
      51. RB_SetColor n , color(1)
      52. RB_Send
      53. end if
      54. next i
      55. do
      56. loop
      57. end
      58. sub Bitmuster_zeile(byval Zeile as Byte , byval Zeilenminuten as Word)
      59. Anzahl = Gesamtminuten / Zeilenminuten
      60. Restminuten = Anzahl * Zeilenminuten
      61. Gesamtminuten = Gesamtminuten - Restminuten
      62. if Anzahl <> 0 then
      63. for i = 1 to Anzahl
      64. pos = i + Zeile
      65. Bitmuster.pos = 1
      66. next i
      67. end if
      68. end sub
      Alles anzeigen
      Triangular.jpg
      Dateien
      • Triangular.bas

        (1,73 kB, 16 mal heruntergeladen, zuletzt: )
      Mein Bascom heißt jetzt Atmel Studio. Ich schaue hier nur noch selten rein.
    • Wie würde man das auch machen können:
      gegeben die Uhrzeit zB. aus einer RTC:
      in Minuten umrechnen, ergibt die Variable 'Zeit'

      Zeit - 360 >=0 then
      6h_led=1
      Zeit=zeit - 360
      else
      6h_led=0
      end if
      zeit - 120 >=0 then
      2h_led_1=1
      zeit=zeit - 120
      else
      'led aus' ;)
      end if
      zeit - 120 >=0 then
      2h_led_=1
      zeit=zeit - 120
      else
      led aus
      end if
      zeit - 30 >=0 then
      30min_led_1=1
      zeit=zeit-30
      else
      led aus
      end if
      ...
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------