Anzeige 1,8" Uhranzeige

    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!

    • Thomas1964 schrieb:

      Oder ich stelle die Uhrzeit über Eingänge.
      Das dürfte für dich der bessere Weg sein als Touch-Buttons auf dem Display.
      Brauchst ja eigentlich nur 2 Taster für Minuten und Stunden.

      Aber jetzt sind wir an einem Punkt, wo das Wait 60 und auch die For-Schleife (1 bis 60) in der Hauptschleife weg muss.
      Oder willst du immer 60*60 = 3600 Sekunden die Taste halten, bis dein Programm reagiert?

      Mein Tip:
      Richte einen Timer ein, der eine ISR im 1-Sekunden-Takt aufruft und dort ein Flag setzt, das z.B. FlagSecTic heißt.

      BASCOM-Quellcode

      1. Config Timer1 = Timer , Prescale = 1024 , CLEAR_TIMER = 1
      2. Compare1A = 15625 - 1 ' Timer auf 1 Hz stellen
      3. On OC1A ISR_Sekundentakt ' ISR-Routine für OC1A-Interrupt
      4. Enable OC1A ' OC1A-Interrupt erlauben
      5. Enable Interrupts ' Interrupts zulassen


      Die ISR-Routine sieht so aus:

      BASCOM-Quellcode

      1. ISR_Sekundentakt:
      2. Set FlagSecTic
      3. Return
      Jetzt brauchst du nur noch das Flag FlagSecTic in der Hauptschleife prüfen und wenn es 1 ist, dann eine Aktion auslösen und Flag wieder löschen.
      Etwa so:

      BASCOM-Quellcode

      1. ' Hauptschleife
      2. Do
      3. If FlagSecTic = 1 then
      4. ' Hier kommt rein, was im Sekundentakt passieren soll
      5. ' Also Uhr nachstellen und aktualisieren
      6. Reset FlagSecTic ' Flag löschen nicht vergessen!
      7. End If
      8. Loop
    • Hallo Mitch,

      war das Wochenende nicht da.
      Werde das mal so umsetzen, aber ist der wait Befehl nicht auch geeignet für die Zeiteinstellung ?
      Oder besteht der im Assembler nur aus nop Befehlen ?
      Weisst du evtl. ob mann die Stunden und Minuten in einem Format ausgeben kann.
      Ich habe das Problem, das die Anzeige natürlich das macht was ich ihr vorgebe.
      Da die Stunden ja von 0-24 sind und die Minuten von 0-59 stellt die Anzeige natürlich bei 00:00 Uhr 0:0 da.

      Gruß Thomas
    • Thomas1964 schrieb:

      Zeiteinstellung
      Nein.
      Der Wait-Befehl wartet einfach nur eine gewisse Zeit ab. Intern macht er da eine Schleife mit n Durchläufen.
      Nops werden da eigentlich nicht gebraucht. n ist die Anzahl Durchläuft.


      Thomas1964 schrieb:

      Stunden und Minuten in einem Format ausgeben kann.
      Ja das kann man. Schau dir mal die Anweisung "Config Clock=Soft" an.

      Es gibt aber auch noch einen anderen Weg. Nämlich mit dem Befehl "Format"
      Den solltest du dir in der Hilfe ebenfalls mal ansehen.

      BASCOM-Quellcode

      1. Dim Zeit as String * 6
      2. Dim tmpString as String * 6
      3. Dim Minuten as Byte
      4. Dim Stunden as Byte
      5. Stunden = 14
      6. Minuten = 57
      7. tmpString = Str(Stunden)
      8. Zeit = Format(tmpString , "00") + ":"
      9. tmpString = Str(Minuten)
      10. Zeit = Zeit + Format(tmpString , "00")
      11. Print Zeit
      Alles anzeigen

      Zuletzt gibt es noch die Variante mit Strings.

      BASCOM-Quellcode

      1. Dim Stunden as Byte
      2. Dim Minuten as Byte
      3. Dim zeit as String * 6
      4. Dim tmpString as String * 5
      5. Stunden = 5
      6. Minuten = 2
      7. tmpString = "00" + Str(Stunden)
      8. Zeit = Right(tmpString , 2) + ":"
      9. tmpString = "00" + Str(Minuten)
      10. Zeit = Zeit + Right(tmpString , 2)
      11. Print Zeit ' Gibt die Zeit aus
      Alles anzeigen
    • Hallo Mitch,

      habe das jetzt mal so angegeben, aber er zeigt keine Zeit an

      Quellcode

      1. Lcd_clear Blue
      2. Lcd_text "HAMBURG HBF Gleis Abf." , 1 , 3 , 4 , White , Blue
      3. Lcd_text "ICE577" , 2 , y1 , 4 , Black , White
      4. Lcd_text "ICE321" , 2 , y2 , 4 , Black , White
      5. Lcd_text "ICE437" , 2 , y3 , 4 , Black , White
      6. Lcd_text "RE8513" , 2 , y4 , 4 , Black , White
      7. Lcd_text "RE2566" , 2 , y5 , 4 , Black , White
      8. Lcd_text "ICE566" , 2 , y6 , 4 , Black , White
      9. Lcd_text "RE3548" , 2 , y7 , 4 , Black , White
      10. Lcd_text "min" , 142 , y1 , 4 , White , Blue
      11. Lcd_text "min" , 142 , y2 , 4 , White , Blue
      12. Lcd_text "min" , 142 , y3 , 4 , White , Blue
      13. Lcd_text "min" , 142 , y4 , 4 , White , Blue
      14. Lcd_text "min" , 142, y5, 4 , White , Blue
      15. Lcd_text "min" , 142 , y6 , 4 , White , Blue
      16. Lcd_text "min" , 142 , y7 , 4 , White , Blue
      17. 'lcd_text ":" , 90 , 118 , 4 , White , Blue
      18. Bahn1 = "Berlin HBF 2 " + str(B1)
      19. Lcd_text Bahn1 , 42 , y1 , 4 , White , Blue
      20. Bahn2 = "Koeln HBF 3 " + str(B2)
      21. Lcd_text Bahn2 , 42 , y2 , 4 , White , Blue
      22. Bahn3 = "Kiel HBF 5 " + str(B3)
      23. Lcd_text Bahn3 , 42 , y3 , 4 , White , Blue
      24. Bahn4 = "HH-Altona 8 " + str(B4)
      25. Lcd_text Bahn4 , 42 , y4 , 4 , White , Blue
      26. Bahn5 = "Luebeck 4 " + str(B5)
      27. Lcd_text Bahn5 , 42 , y5 , 4 , White , Blue
      28. Bahn6 = "Hagen HBF 1 " + str(B6)
      29. Lcd_text Bahn6 , 42 , y6 , 4 , White , Blue
      30. Bahn7 = "Bremen 6 " + str(B7)
      31. Lcd_text Bahn7 , 42 , y7 , 4 , White , Blue
      32. 'Lcd_text "Uhrzeit" , 10 , 118 , 4 , White , Blue
      33. 'Stund = " "+ str(Stunden)
      34. 'Lcd_text Stund , 70 , 118 , 4 , White , Blue
      35. 'Minut = " "+ str(Minuten)
      36. 'Lcd_text Minut , 112 , 118 , 4 , White , Blue
      37. tmpString = "00" + Str(Stunden)
      38. Zeit = Right(tmpString , 2) + ":"
      39. tmpString = "00" + Str(Minuten)
      40. Zeit = Zeit + Right(tmpString , 2)
      41. Print Zeit
      Alles anzeigen
    • Hallo Mitch,

      habe den Fehler gefunden, ich muss dem Display ja auch sagen wo er das schreiben soll. ?( ?( ?( ?( ?(

      Quellcode

      1. '*******************************************************************************
      2. 'Programm for Display ST7735R 1.8Zoll 128x160
      3. ' and Display ILI9163 1.8Zoll 128x160
      4. 'Bascom IDE 2.0.7.7
      5. '
      6. 'Version:13012014
      7. 'By Hkipnik
      8. ' © Copyright by H.Kipnik 2012
      9. 'Date 13.01.2014
      10. '*******************************************************************************
      11. ' SD Card CS --> portD.7
      12. ' Miso --> portb.4
      13. 'Display
      14. ' CS --> portb.2
      15. ' DC --> portb.1
      16. ' reset --> portb.0
      17. ' Mosi --> portb.3
      18. ' Clock --> portb.5
      19. '
      20. '
      21. '*******************************************************************************
      22. $regfile = "m328pdef.dat"
      23. $crystal = 16000000
      24. $hwstack = 50
      25. $swstack = 150
      26. $framesize = 150
      27. $baud = 57600
      28. '*******************************************************************************
      29. Const Sdcard = 0 'use SD Card = 1 no SD Card = 0
      30. Const Modus = 1 '0=Portrait 1=Landscape
      31. Const Driver = 1 '0=ST7735 1=ILI9163
      32. 'only Display ST7735
      33. 'Display typ Red or black Tab have different RGB order
      34. 'color of the display plastic wrap
      35. Const Disp_typ = 0 'RGB order 0=Black Tab 1=Red Tab
      36. '*******************************************************************************
      37. Config Portb.2 = Output
      38. Config Portb.1 = Output
      39. Config Portb.0 = Output
      40. Lcd_cs Alias Portb.2
      41. Lcd_dc Alias Portb.1
      42. Lcd_reset Alias Portb.0
      43. Lcd_reset = 1
      44. Lcd_cs = 1
      45. Lcd_dc = 1
      46. '*******************************************************************************
      47. 'Include Declaration
      48. $include "TFTDriver\ST7735_declarations.inc"
      49. '*******************************************************************************
      50. 'Use For Demo
      51. Dim Help_str As String * 15
      52. Dim Temp_str As String * 15
      53. Dim Zahler As Byte
      54. Dim Bahn1 As String * 20
      55. Dim Bahn2 As String * 20
      56. Dim Bahn3 As String * 20
      57. Dim Bahn4 As String * 20
      58. Dim Bahn5 As String * 20
      59. Dim Bahn6 As String * 20
      60. Dim Bahn7 As String * 20
      61. Dim Stund As String * 20
      62. Dim Minut As String * 20
      63. Dim B1 as Byte
      64. Dim B2 as Byte
      65. Dim B3 as Byte
      66. Dim B4 as Byte
      67. Dim B5 as Byte
      68. Dim B6 as Byte
      69. Dim B7 as Byte
      70. Dim Stunden as Byte
      71. Dim Minuten As Byte
      72. Dim Schleife As Byte
      73. Dim Schleife2 As Byte
      74. Dim FlagSecTic as Byte
      75. Dim y1 As Byte
      76. Dim y2 as byte
      77. Dim y3 as Byte
      78. Dim y4 as Byte
      79. Dim y5 as Byte
      80. Dim y6 as Byte
      81. Dim y7 as Byte
      82. Dim zeit as String * 6
      83. Dim tmpString as String * 5
      84. Stunden = 0
      85. Minuten = 0
      86. B1 = 8
      87. B2 = 15
      88. B3 = 23
      89. B4 = 27
      90. B5 = 31
      91. B6 = 35
      92. B7 = 42
      93. Schleife2 = 60
      94. '*******************************************************************************
      95. 'Timer Einstellung
      96. 'Config Timer1 = Timer , Prescale = 1024 , CLEAR_TIMER = 1
      97. 'Compare1A = 15625 - 1 ' Timer auf 1 Hz stellen
      98. 'On OC1A ISR_Sekundentakt ' ISR-Routine für OC1A-Interrupt
      99. ' Enable OC1A ' OC1A-Interrupt erlauben
      100. ' Enable Interrupts ' Interrupts zulassen
      101. '*******************************************************************************
      102. 'Init SD Card and Spi
      103. #if Sdcard = 1
      104. $include "Avr-Dos\Config_MMCSD_HC.bas"
      105. $include "Avr-Dos\Config_AVR-DOS.bas"
      106. Init_sd_card
      107. #endif
      108. #if Sdcard = 0
      109. ' Config Portb.0 = Output 'auch wenn nicht genutzt
      110. ' Portb.0 = 1
      111. Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 4 , Noss = 1
      112. Spsr.0 = 1
      113. Spiinit
      114. #endif
      115. '*******************************************************************************
      116. 'Init the Dispaly
      117. Lcd_init
      118. Lcd_clear Black
      119. '*******************************************************************************
      120. #if Sdcard = 1
      121. Call Init_sd_card() 'Init SD Card
      122. Temp_str = "SD Card= " + Str(sd_ok)
      123. Lcd_text Temp_str , 1 , 1 , 1 , Yellow , Black
      124. ' 1 OK
      125. ' 0 Error
      126. Temp_str = "SD Card Typ= " + Str(mmcsd_cardtype)
      127. Lcd_text Temp_str , 1 , 20 , 1 , Yellow , Black
      128. ' 0 can't init the Card
      129. ' 1 MMC
      130. ' 2 SDSC Spec. 1.x
      131. ' 4 SDSC Spec. 2.0 or later
      132. ' 12 SDHC Spec. 2.0 or later
      133. Wait 2
      134. Lcd_clear Black
      135. #endif
      136. do
      137. 'ISR_Sekundentakt:
      138. 'Set FlagSecTic
      139. 'Return
      140. y1 = 20
      141. y2 = 32
      142. y3 = 44
      143. y4 = 56
      144. y5 = 68
      145. y6 = 80
      146. y7 = 92
      147. For Schleife = 1 to 60
      148. Lcd_clear Blue
      149. Lcd_text "HAMBURG HBF Gleis Abf." , 1 , 3 , 4 , White , Blue
      150. Lcd_text "ICE577" , 2 , y1 , 4 , Black , White
      151. Lcd_text "ICE321" , 2 , y2 , 4 , Black , White
      152. Lcd_text "ICE437" , 2 , y3 , 4 , Black , White
      153. Lcd_text "RE8513" , 2 , y4 , 4 , Black , White
      154. Lcd_text "RE2566" , 2 , y5 , 4 , Black , White
      155. Lcd_text "ICE566" , 2 , y6 , 4 , Black , White
      156. Lcd_text "RE3548" , 2 , y7 , 4 , Black , White
      157. Lcd_text "min" , 142 , y1 , 4 , White , Blue
      158. Lcd_text "min" , 142 , y2 , 4 , White , Blue
      159. Lcd_text "min" , 142 , y3 , 4 , White , Blue
      160. Lcd_text "min" , 142 , y4 , 4 , White , Blue
      161. Lcd_text "min" , 142, y5, 4 , White , Blue
      162. Lcd_text "min" , 142 , y6 , 4 , White , Blue
      163. Lcd_text "min" , 142 , y7 , 4 , White , Blue
      164. 'lcd_text ":" , 90 , 118 , 4 , White , Blue
      165. Bahn1 = "Berlin HBF 2 " + str(B1)
      166. Lcd_text Bahn1 , 42 , y1 , 4 , White , Blue
      167. Bahn2 = "Koeln HBF 3 " + str(B2)
      168. Lcd_text Bahn2 , 42 , y2 , 4 , White , Blue
      169. Bahn3 = "Kiel HBF 5 " + str(B3)
      170. Lcd_text Bahn3 , 42 , y3 , 4 , White , Blue
      171. Bahn4 = "HH-Altona 8 " + str(B4)
      172. Lcd_text Bahn4 , 42 , y4 , 4 , White , Blue
      173. Bahn5 = "Luebeck 4 " + str(B5)
      174. Lcd_text Bahn5 , 42 , y5 , 4 , White , Blue
      175. Bahn6 = "Hagen HBF 1 " + str(B6)
      176. Lcd_text Bahn6 , 42 , y6 , 4 , White , Blue
      177. Bahn7 = "Bremen 6 " + str(B7)
      178. Lcd_text Bahn7 , 42 , y7 , 4 , White , Blue
      179. Lcd_text "Uhrzeit" , 10 , 118 , 4 , White , Blue
      180. tmpString = "00" + Str(Stunden)
      181. Zeit = Right(tmpString , 2) + ":"
      182. tmpString = "00" + Str(Minuten)
      183. Zeit = Zeit + Right(tmpString , 2)
      184. lcd_text Zeit, 80,118,4,White, Blue
      185. Print Zeit
      186. decr B1
      187. decr B2
      188. decr B3
      189. decr B4
      190. decr B5
      191. decr B6
      192. decr B7
      193. incr Minuten
      194. if B1 = 0 then B1 = 60
      195. if B2 = 0 then B2 = 60
      196. if B3 = 0 then B3 = 60
      197. if B4 = 0 then B4 = 60
      198. if B5 = 0 then B5 = 60
      199. if B6 = 0 then B6 = 60
      200. if B7 = 0 then B7 = 60
      201. if Minuten = 60 then
      202. Minuten = 0
      203. incr Stunden
      204. if Stunden = 24 then Stunden = 0
      205. End if
      206. wait 1
      207. next Schleife
      208. loop
      209. Do
      210. '*******************************************************************************
      211. 'test landscape
      212. '*******************************************************************************
      213. #if Modus = 1
      214. For Zahler = 1 To 182
      215. Help_str = Str(zahler)
      216. Temp_str = Format(help_str , "000")
      217. Temp_str = Temp_str + ".bin"
      218. ' Lcd_pic 0 , 0 , 160 , 120 , Temp_str
      219. Next
      220. #endif
      221. Loop
      222. End
      223. '*******************************************************************************
      224. $include "TFTDriver\ST7735_functions-1.inc"
      225. #if Sdcard = 1
      226. $include "Avr-Dos\SD_card_init.inc"
      227. #endif
      228. $include "Font\Font8x8.font"
      229. $include "Font\Font12x16.font"
      230. $include "Font\font8x12.font"
      231. $include "Font\font6x10.font"
      232. $include "Font\font10x16.font"
      Alles anzeigen
    • Thomas1964 schrieb:

      Mit dem Timer den Sekundentakt erzeugen, und dann ?
      In der ISR wird ein Flag gesetzt nach jeder Minute.

      Das wird dann in der Hauptschleife abgefragt.
      Ist es gesetzt, muss die Anzeige aktualisiert werden. Dann das Fläg löschen. Es soll ja nur 1x jede Minute aktualisiert werden.

      Dadurch brauchst du das Wait in der Hauptschleife nicht mehr und kannst später hier Tasten abfragen oder sonstiges tun.
    • Das Formatieren der Zeit kannst du auch in eine Function packen. Dann wird der Code übersichtlicher.

      BASCOM-Quellcode

      1. Function FormatTime(Byval Stunden as Byte , Byval Minuten as Byte) as String
      2. Local tmp as String * 5
      3. Local tmpZeit as String * 6
      4. tmp = "00" + Str(Stunden)
      5. tmpZeit = Right(tmp , 2) + ":"
      6. tmp = "00" + Str(Minuten)
      7. tmpZeit = tmpZeit + Right(tmp , 2)
      8. FormatTime = tmpZeit
      9. End Function
      10. Dim Zeit as String * 6
      11. Zeit = FormatTime(3 , 4)
      Alles anzeigen
    • Hallo Mitch,

      habe das mal jetzt so reingetan, jetzt bleibt die Anzeige aber weiß.
      Was mache ich hier falsch ?

      Quellcode

      1. ISR_Sekundentakt:
      2. Set FlagSecTic
      3. y1 = 20
      4. y2 = 32
      5. y3 = 44
      6. y4 = 56
      7. y5 = 68
      8. y6 = 80
      9. y7 = 92
      10. 'For Schleife = 1 to 60
      11. Lcd_clear Blue
      12. Lcd_text "HAMBURG HBF Gleis Abf." , 1 , 3 , 4 , White , Blue
      13. Lcd_text "ICE577" , 2 , y1 , 4 , Black , White
      14. Lcd_text "ICE321" , 2 , y2 , 4 , Black , White
      15. Lcd_text "ICE437" , 2 , y3 , 4 , Black , White
      16. Lcd_text "RE8513" , 2 , y4 , 4 , Black , White
      17. Lcd_text "RE2566" , 2 , y5 , 4 , Black , White
      18. Lcd_text "ICE566" , 2 , y6 , 4 , Black , White
      19. Lcd_text "RE3548" , 2 , y7 , 4 , Black , White
      20. Lcd_text "min" , 142 , y1 , 4 , White , Blue
      21. Lcd_text "min" , 142 , y2 , 4 , White , Blue
      22. Lcd_text "min" , 142 , y3 , 4 , White , Blue
      23. Lcd_text "min" , 142 , y4 , 4 , White , Blue
      24. Lcd_text "min" , 142, y5, 4 , White , Blue
      25. Lcd_text "min" , 142 , y6 , 4 , White , Blue
      26. Lcd_text "min" , 142 , y7 , 4 , White , Blue
      27. Bahn1 = "Berlin HBF 2 " + str(B1)
      28. Lcd_text Bahn1 , 42 , y1 , 4 , White , Blue
      29. Bahn2 = "Koeln HBF 3 " + str(B2)
      30. Lcd_text Bahn2 , 42 , y2 , 4 , White , Blue
      31. Bahn3 = "Kiel HBF 5 " + str(B3)
      32. Lcd_text Bahn3 , 42 , y3 , 4 , White , Blue
      33. Bahn4 = "HH-Altona 8 " + str(B4)
      34. Lcd_text Bahn4 , 42 , y4 , 4 , White , Blue
      35. Bahn5 = "Luebeck 4 " + str(B5)
      36. Lcd_text Bahn5 , 42 , y5 , 4 , White , Blue
      37. Bahn6 = "Hagen HBF 1 " + str(B6)
      38. Lcd_text Bahn6 , 42 , y6 , 4 , White , Blue
      39. Bahn7 = "Bremen 6 " + str(B7)
      40. Lcd_text Bahn7 , 42 , y7 , 4 , White , Blue
      41. Lcd_text "Uhrzeit" , 10 , 118 , 4 , White , Blue
      42. tmpString = "00" + Str(Stunden)
      43. Zeit = Right(tmpString , 2) + ":"
      44. tmpString = "00" + Str(Minuten)
      45. Zeit = Zeit + Right(tmpString , 2)
      46. lcd_text Zeit, 80,118,4,White, Blue
      47. Print Zeit
      48. decr B1
      49. decr B2
      50. decr B3
      51. decr B4
      52. decr B5
      53. decr B6
      54. decr B7
      55. incr Minuten
      56. if B1 = 0 then B1 = 60
      57. if B2 = 0 then B2 = 60
      58. if B3 = 0 then B3 = 60
      59. if B4 = 0 then B4 = 60
      60. if B5 = 0 then B5 = 60
      61. if B6 = 0 then B6 = 60
      62. if B7 = 0 then B7 = 60
      63. if Minuten = 60 then
      64. Minuten = 0
      65. incr Stunden
      66. if Stunden = 24 then Stunden = 0
      67. End if
      68. 'wait 1
      69. 'next Schleife
      70. Return
      71. loop
      Alles anzeigen
    • Hallo Mitch,

      habe das jetzt mal so abgeändert, aber jetzt zeigt das Display nichts mehr an......

      Quellcode

      1. do
      2. ISR_Sekundentakt:
      3. Set FlagRefreshDisplay
      4. Lcd_clear Blue
      5. Lcd_text "HAMBURG HBF Gleis Abf." , 1 , 4 , 4 , White , Blue
      6. Lcd_text "ICE577" , 2 , y1 , 4 , Black , White
      7. Lcd_text "ICE321" , 2 , y2 , 4 , Black , White
      8. Lcd_text "ICE437" , 2 , y3 , 4 , Black , White
      9. Lcd_text "RE8513" , 2 , y4 , 4 , Black , White
      10. Lcd_text "RE2566" , 2 , y5 , 4 , Black , White
      11. Lcd_text "ICE566" , 2 , y6 , 4 , Black , White
      12. Lcd_text "RE3548" , 2 , y7 , 4 , Black , White
      13. Lcd_text "min" , 142 , y1 , 4 , White , Blue
      14. Lcd_text "min" , 142 , y2 , 4 , White , Blue
      15. Lcd_text "min" , 142 , y3 , 4 , White , Blue
      16. Lcd_text "min" , 142 , y4 , 4 , White , Blue
      17. Lcd_text "min" , 142, y5, 4 , White , Blue
      18. Lcd_text "min" , 142 , y6 , 4 , White , Blue
      19. Lcd_text "min" , 142 , y7 , 4 , White , Blue
      20. Bahn1 = "Berlin HBF 2 " + str(B1)
      21. Lcd_text Bahn1 , 42 , y1 , 4 , White , Blue
      22. Bahn2 = "Koeln HBF 3 " + str(B2)
      23. Lcd_text Bahn2 , 42 , y2 , 4 , White , Blue
      24. Bahn3 = "Kiel HBF 5 " + str(B3)
      25. Lcd_text Bahn3 , 42 , y3 , 4 , White , Blue
      26. Bahn4 = "HH-Altona 8 " + str(B4)
      27. Lcd_text Bahn4 , 42 , y4 , 4 , White , Blue
      28. Bahn5 = "Luebeck 4 " + str(B5)
      29. Lcd_text Bahn5 , 42 , y5 , 4 , White , Blue
      30. Bahn6 = "Hagen HBF 1 " + str(B6)
      31. Lcd_text Bahn6 , 42 , y6 , 4 , White , Blue
      32. Bahn7 = "Bremen 6 " + str(B7)
      33. Lcd_text Bahn7 , 42 , y7 , 4 , White , Blue
      34. Lcd_text "Uhrzeit" , 10 , 118 , 1 , White , Blue
      35. tmpString = "00" + Str(Stunden)
      36. Zeit = Right(tmpString , 2) + ":"
      37. tmpString = "00" + Str(Minuten)
      38. Zeit = Zeit + Right(tmpString , 2)
      39. lcd_text Zeit, 80,118,1,White, Blue
      40. Print Zeit
      41. if flagRefreshDisplay = 1 then decr B1
      42. if flagRefreshDisplay = 1 then decr B2
      43. if flagRefreshDisplay = 1 then decr B3
      44. if flagRefreshDisplay = 1 then decr B4
      45. if flagRefreshDisplay = 1 then decr B5
      46. if flagRefreshDisplay = 1 then decr B6
      47. if flagRefreshDisplay = 1 then decr B7
      48. if flagRefreshDisplay = 1 then incr Minuten
      49. if B1 = 0 then B1 = 60
      50. if B1 = 0 Then y1 = 92
      51. if B2 = 0 then B2 = 60
      52. if B3 = 0 then B3 = 60
      53. if B4 = 0 then B4 = 60
      54. if B5 = 0 then B5 = 60
      55. if B6 = 0 then B6 = 60
      56. if B7 = 0 then B7 = 60
      57. if Minuten = 60 then
      58. Minuten = 0
      59. incr Stunden
      60. if Stunden = 24 then Stunden = 0
      61. End if
      62. Return
      63. loop
      Alles anzeigen
    • Du hast die IST-Routine in deine Hautschleife gepackt.
      So geht das natürlich nicht.

      So muss das aussehen:

      BASCOM-Quellcode

      1. ' Hauptschleife (Beginnt mit Do und endet mit Loop)
      2. ' Diese Schleife wird nie beendet oder verlassen, außer temporär für einen Call oder eine Subroutine.
      3. Do
      4. If FlagDisplayRefresh=1 then
      5. ' Hier deine Anzeigeroutinen rein, um das Display zu aktualisieren
      6. ' Reset FlagDisplayRefresh
      7. End If
      8. Loop
      9. ' Deine ISR-Routine unterhalb der Hauptschleife (nach Do .. Loop) plazieren.
      10. ' Das ist deine ISR (Beginnt mit Label und endet mit Return)
      11. ISR_SecTic:
      12. ' Hier Sekunden zählen, wenn die dann 60 sind, Minuten +1 und Sekunden auf 0
      13. ' Das Spielchen kennste doch jetzt?
      14. Und Wenn die Minuten auf 0 sind oder besser gesetzt werden, dann das Flag FlagDisplayRefresh setzen
      15. Return
      Alles anzeigen