Win10 und Diamex Programmer auf ein Neues...

    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!

    • Win10 und Diamex Programmer auf ein Neues...

      Guten Morgen,

      mal wieder das leidige Thema Win10 und Diamex...

      Ich bin ein wenig erstaunt: Ich versuche gerade, einen Win10 Laptop zum Programmierrechner zu machen und habe mit den USB-Stick-Diamex-Programmern ein echtes Problem:
      Die funktionieren nicht mehr.
      Zunächst ging mal gar nichts auf dem Laptop, beim Programmieren ist Bascom in die ISP-Programmierproc gestartet und blieb bei timeout:100 stehen...?
      Im "Prozessorfeld" waren nur die drei Fragezeichen zu sehen, also "kein Chip erkannt...".
      Dann...plötzlich nach einem Tag oder sowas, konnte ich den Controller, ein 256er, tatsächlich programmieren, das aber offensichtlich fehlerhaft, weil das Programm nicht korrekt funktioniert.

      Ich habe dann meinen Win7-Rechner wieder hervorgekramt, mit dem ich bislang gearbeitet habe und, siehe da, alle funktionierte wie zuvor...

      Fazit: Zuerst offensichtlich fette Treiberfehler in Win10, obwohl die Brenner für Win10 angeblich keine Treiber benötigen, dann geht es plötzlich, ohne, dass ich irgenwas verändert hätte, nur durch immer und immer wieder probieren, aber:
      Das Programm ist nicht auf dem Chip, zumindest nicht vollständigt.
      Der Rücklesetest ist OK, es muss also beim Brennen nicht alles übertragen worden sein... ???? a_56_df238249

      Jemand eine Idee?
    • Hallo Peer,
      mein Post #22 beschreibt meine Erfahrung mit einem Diamex Programmer bei der Umstellung auf WIN10.
      Gruß Rudi

      Rudi Einstein schrieb:

      ceperiga schrieb:

      Hab die Teile aber schon eine gefühlte Ewigkeit. Für mich ein stressfreier Programmer für ca. 20,00€. Würde ich jederzeit wieder kaufen.
      So, im Neuen Jahr zunächst alles Gute für die Community und dann geht es sehr gut weiter, denn ich habe deinen Rat befolgt lb.Christian und Diamex hat auch noch Sylvester geliefert!An meinen WIN7 Laptop angesteckt, Treiber von der DIAMEX-HP runtergesaugt, installiert, BASCOM Programmer auf STK500 native Driver eingestellt und schnurrt prima mit einer Applikation dahinter.
      Schnell die SSD auf die mit WIN10 getauscht, USB rein und siehe da, der Port wird vom BS automatisch konfiguriert und schnurrt auch prima.
      Zur Info habe ich ein paar Bilder im Anhang beigefügt.
      Danke nochmals für eure Mühe, die zum guten Ergebnis geführt hat.

      Zu dem Programmer, den ich nicht zum Laufen bekommen habe nur soviel: ich hab ihn zurückgeschickt an Tremex (Diamex) und habe mir dort den neuen gekauft, welcher original so eingepackt war wie der erstere.

      Gruß Rudi
      Immer Glück haben ist fast wie können..
    • Hi,

      den Post hatte ich auch als Basis genommen, um mal einen Alternativbrenner zu organisieren (habe jetzt einen anderen von Diamex im kleinen Plexiglasgehäuse), sonst arbeite ich bisher mit einem Diamex, dem grünen USB-Stick.
      Es ist aber leider damit nicht getan, denn auch dieser andere Brenner, der nach weiterer Recherche im Inet auf jeden Fall mit Win10 laufen soll, macht nicht, was er soll.
      Da die Übertragung aber scheinbar korrekt abläuft und die "automatische" Gegenkontrolle nach dem Brennen auch korrekt ist, habe ich nun keine Ahnung, was los ist, denn das Programm auf dem Controller spielt nach Übertragung verrückt.
      Es sieht alles korrekt aus, zunächst, aber nach ein paar Sekunden spinnt die Kiste.
      Das ist echt spooky, habe keine Idee...

      Meine Vermutung liegt eher im Laptop, ob sich da irgendwas in Sachen Treiber in die Quere kommt oder sowas. Der Laptop ist eigentlich recht frisch und noch kaum genutzt...

      Das ist mal wieder was...
    • Mir viel gerade was ein:
      Könnte das Compilat auf dem neuen Laptop irgendwie "kaputt" sein?
      Habe darauf hin die .eep und die .bin vom alten auf den neuen Rechner gezogen...und siehe da:
      Das Compilat vom alten Rechner ist tatsächlich OK!
      Es ist also gar nicht der Brennvorgang, es ist die "exe" aus Bascom, die mir Probleme macht.

      Was ist hier denn passiert?
      Könnte das eine Versionsproblematik sein?
      Auf dem alten Rechner ist die Version 2.0.8.1, auf dem neuen 2.0.8.3 installiert.
      Ich hatte die Dateien ohne weitere Anpassung auf den neuen Rechner gezogen.

      Muss ich dabei was beachten?

      Ist die Insatallation evtl. defekt?
    • So, Abschlussbericht: Der Programmer ist super OK!
      Win10 ist auch kein Problem...

      Ich habe den Fehler eingekreist und schlussendlich gefunden:

      Es war meine ADC-Ausleseroutine.

      Bisher habe ich den 256er so ausgelesen:

      Free_word = Getadc(3 , 32)

      Nach Handbuch musste das beim 256er so gemacht werden, weil er mehr als 8 ADC-Kanäle hat, die 32 ist ein Offset für den Kanal 8 (also den neunten Kanal).

      Das hat bis Vers. 8.1 auch funktioniert, anders ging es nicht...sonst keine Werte....fragt mich nicht...

      Ab >8.1 ist das GetADC-Kommando bei mir nur noch so funktionsfähig:

      Free_word = Getadc(3)

      ...also letztlich ganz normal, wie bei den anderen, kleinen AVRs mit nur 8 ADC-Kanälen...

      Ich habe dazu nichts im Changelog gefunden (oder was wichtiges überlesen?), also z.B. ob her ein Bug beseitigt wurde oder irgenwas gerade gerückt wurde.
      Bin nun ein wenig überfragt, warum das so ist.
      Bestimmt habe ich vorher schon irgendwas falsch gemacht, aber dann hat es halt "fehlerhaft" funktioniert?
      Denn ich habe ja die unteren 8 Kanäle genutzt, womit die Adressoption für die gemuxten Kanäle oberhalb Kanal 7 eigentlich nicht nötig ist, aber nur so hat es bei mir bisher funktioniert.

      Egal:
      Am Ende ist es halt so, geht jetzt alles wieder, wie gehabt.


      Die Bascom-Hilfe:

      ...
      Some micro’s have more then 7 channels. This is supported as well. The ADCSRB register contains a bit named MUX5 that must be set when a channel higher then 7 is used. The compiler will handle this automatic. This is true for new chips like Mega1280, Mega2560 and probably other new chips with 100 pins.

      An example on how to read singled ended input on a Mega1280:
      W = Getadc(0, 32) ' from data sheet : 100000 ADC8
      W = Getadc(1, 32) ' from data sheet : 100001 ADC9

      This will read channel 0 and 1. The offset is 32 in order to use singled ended input.
      ADC8 is portK.0

      Without the offset, you need to provide the proper value for the channel.
      So GetADC(0,32) would become : GetADC(32)
      And GetADC(1,32) would become : GetADC(33)
    • Mein Testprogramm mit einen 2560 Arduino und Display
      war ein 16 Kanal Analoglogger

      BASCOM-Quellcode

      1. '*******************************************************************************
      2. 'Display Driver IC HX8357B or C 480x320 Pixel
      3. 'Modus 16Bit
      4. 'HVGA 480x320 3,6
      5. 'Autor: Hkipnik@aol.com
      6. 'Copyright by Hkipnik@aol.com
      7. '*******************************************************************************
      8. '
      9. '
      10. ' Insanity
      11. ' Testprogramm Diagramm 16 Kanal
      12. ' 3.1.2018
      13. '
      14. $regfile = "M2560def.dat"
      15. $crystal = 16000000
      16. $hwstack = 250
      17. $swstack = 250
      18. $framesize = 250
      19. Wait 1
      20. Config Com1 = 38400 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
      21. ' Led auf Arduino Board
      22. Config Portb.7 = Output
      23. '*******************************************************************************
      24. 'Display Mode
      25. '*******************************************************************************
      26. Const Lcd_driver = 1 '1=HX8357B 2=HX8357C
      27. Const LCD_Mode = 3
      28. Const SD_Card = 0
      29. '*******************************************************************************
      30. '*******************************************************************************
      31. $include "TFTDriver\HX8357_declarations.inc"
      32. '*******************************************************************************
      33. 'Init the Display
      34. '*******************************************************************************
      35. Call Lcd_init()
      36. Call Lcd_clear(black)
      37. '*******************************************************************************
      38. Dim X1 As Word
      39. Dim Y1(16) As Word
      40. Dim X2 As Word
      41. Dim Y2(16) As Word
      42. Dim Schleife As Word
      43. Dim Farbe(16) As Word
      44. Dim Offset As Word
      45. Dim Text As String * 12
      46. For Schleife = 1 To 16
      47. Farbe(schleife) = Schleife * &H88
      48. Next
      49. Declare Function Analog(byval Kanal As Byte , Byval Anzahl As Word ) As Word
      50. ' Analog
      51. Config Adc = Single , Prescaler = Auto , Reference = Internal_2.56
      52. Start Adc
      53. Do
      54. Call Lcd_clear(black)
      55. Call Lcd_text( " 16 Kanal Diagramm " , 10 , 10 , 1 , Yellow , Black , 1)
      56. Wait 1
      57. Call Lcd_clear(black)
      58. For Schleife = 1 To 16
      59. Offset = Schleife - 1
      60. Offset = Offset * 20
      61. Offset = Offset + 7
      62. Text = "Kanal : " + Str(schleife)
      63. Call Lcd_text( Text , 1 , Offset , 2 , White , Black , 1)
      64. Next
      65. For Schleife = 1 To 16
      66. Y1(schleife) = Analog(schleife -1 , 20) / 52
      67. Offset = Schleife - 1
      68. Offset = Offset * 20
      69. Y1(schleife) = Y1(schleife) + Offset
      70. Y2(schleife) = Y1(schleife)
      71. Next
      72. Do
      73. For X1 = 79 To 479
      74. X2 = X1
      75. Call Lcd_line(x1 , 0 , X2 , 319 , 1 , Black)
      76. For Schleife = 1 To 16
      77. Y1(schleife) = Analog(schleife -1 , 20) / 52
      78. Offset = Schleife - 1
      79. Offset = Offset * 20
      80. Y1(schleife) = Y1(schleife) + Offset
      81. Print Y1(schleife)
      82. Call Lcd_line(x1 , Y1(schleife) , X2 , Y2(schleife) , 1 , Farbe(schleife))
      83. Y2(schleife) = Y1(schleife)
      84. Next
      85. Next
      86. Loop
      87. Loop
      88. End
      89. '*******************************************************************************
      90. Function Analog(byval Kanal As Byte , Byval Anzahl As Word)
      91. Local Xschleife As Word
      92. Local Xanalogmesswert As Word
      93. Local Xanalogmesswert_summe As Long
      94. Local Xanalog_mittel As Long
      95. If Anzahl = 0 Then Anzahl = 1
      96. Xanalogmesswert_summe = 0
      97. ' Anpassung für Atmega 2560
      98. ' AD Kanal 8-15
      99. If Kanal > 7 Then
      100. Kanal = Kanal + 24
      101. End If
      102. For Xschleife = 1 To Anzahl
      103. Xanalogmesswert = Getadc(kanal)
      104. Xanalogmesswert_summe = Xanalogmesswert_summe + Xanalogmesswert
      105. Next
      106. Xanalog_mittel = Xanalogmesswert_summe / Anzahl
      107. Xanalogmesswert = Xanalog_mittel
      108. Analog = Xanalogmesswert
      109. End Function
      110. $include "TFTDriver\HX8357_functions.inc"
      111. $include "Font\font12x16.font"
      112. $include "Font\My6_8.font"
      Alles anzeigen

      Um alle 16 Analogkanäle zu benutzen musste ich 24 dazuaddieren
    • Guten Morgen,

      offset von 24? Wo steht das denn nun wieder?
      Wäre schön gewesen, wenn Bascom das einfach "seamless" integriert hätte für alle Controllertypen, z.B. über "readADC(1...16)", fertig.

      Dafür ist ein Compiler doch da, dass man sich das tagelange Studium jedes einzelnen Datenblattes zu jedem Prozessortyp und zu jedem Register ersparen können sollte.

      Aktuell bin ich nun etwas verwirrt...

      Hat Niemand im Forum eine Idee, ob das mit den ADCs denn nun endlich in Bascom "automatisiert" und logisch gemacht wurde, ohne diesen Offset-Krimskrams?