LCD an AVR über USB von Notebook steuern

    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!

    • Was genau willst du dem LCD schicken? Schrift? Grafik?
      Musst dem AVR am Display halt nen string schicken den er ausgibt, sowas wie "text,1,1,12345678"
      Dann den string zerlegen Text=textmodus, 1,1 für locate 1,1 und den eigentlichen text
      Ob das mit dem locate als variable funktioniert ist allerdings ne gute frage. Und du brauchst für alle eventualitäten if/then oder case fragebäume.
      Oder du produzierts auf dem PC den ganzen Displayinhalt und schickst den an den avr, der bunkert das bild und gibt es dann aus

      Tobias
    • Na wieso umprogrammieren,
      statt text einen andere identifier definieren z.b. "befehl"
      Dann einen string senden, den wieder mit spit auf dem avr zerlegen und deinen identifier vergleichen. Gesendet wird dann : befehl,1,0,0
      sowas wie if identifier = befehl then..., dann den nächsten teil vom split prüfen und dementsprechend auf dem avr auswerten. Z.b:
      if variable 1 = 1 then glcdcmd &HE2 , 1

      musst dir halt soviele abfragen möglichkeiten im avr reinbauen wie du befehle hast
      Ich hoffe ich konnts erklären.

      Tobias
    • Schönen Sonntag euch

      So meine ersten Versuche enden damit das nur jede zweite Sendung vom PC ausgewertet wird.

      Die Signale vom FTDI sind korrekt, mit dem Logik-Analysator sehe ich das genau fünf String´s gesendet werden. Warum wird nur jeder zweite angezeigt ?

      Quellcode

      1. 'Daten an avr
      2. $regfile = "m16adef.dat"
      3. $crystal = 11059200
      4. $hwstack = 40
      5. $swstack = 60
      6. $framesize = 60
      7. $baud = 9600
      8. Ddrd = &B00001000
      9. Ddrb = &B00011110
      10. Ddrc = &B11111100
      11. '----------------Lcd Initialisieren
      12. Config Lcd = 20x4
      13. Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
      14. Cls
      15. Cursor Off
      16. Config Portb.1 = Output 'Fuer Signaltest-LED
      17. K1 Alias Portb.1
      18. Portb.1 = 0
      19. Config Portb.2 = Output 'Fuer Signaltest-LED
      20. K2 Alias Portb.2
      21. Portb.2 = 0
      22. Config Portb.3 = Output 'Fuer Signaltest-LED
      23. K3 Alias Portb.3
      24. Portb.3 = 0
      25. Config Portb.4 = Output 'Fuer Signaltest-LED
      26. K4 Alias Portb.4
      27. Portb.4 = 0
      28. Config Portd.3 = Output 'Fuer Speicher-LED
      29. Led Alias Portd.3
      30. Portd.3 = 0
      31. Config Pind.7 = Input
      32. Portd.7 = 1 'Pullup-Widerstand t_plus
      33. T_plus Alias Pind.7
      34. Config Pind.6 = Input
      35. Portd.6 = 1 'Pullup-Widerstand t_save
      36. T_save Alias Pind.6
      37. Config Pind.5 = Input
      38. Portd.5 = 1 'Pullup-Widerstand t_set
      39. T_set Alias Pind.5
      40. Config Pind.4 = Input
      41. Portd.4 = 1 'Pullup-Widerstand t_inf
      42. T_inf Alias Pind.4
      43. '-------------------------------------------
      44. Dim Neue_sek As Byte
      45. Dim Wochentag As Byte '0..6
      46. Dim Stunde As Byte
      47. Dim Minute As Byte
      48. Dim Temp1 As Long
      49. Dim Stat As Bit 'Status-Bit
      50. Dim Data_in As String * 5 'fuer LCD
      51. Dim X As Byte
      52. Dim Z As Byte 'Zähler Variable
      53. Z = 0
      54. Dim Bsec As Byte , Bmin As Byte , Bhour As Byte 'für anzeigen Save_zeit
      55. Config Serialin = Buffered , Size = 5
      56. Enable Interrupts
      57. '----------------- I2C - DS1307 ---------------------------
      58. 'Config Sda = Portc.1 'I2C-Pins definieren
      59. 'Config Scl = Portc.0
      60. 'Config Twi = 100000
      61. 'Const Ds3231_adresse = 208 '&HD0 I2C Adresse der Uhr DS1307
      62. 'Const Ds3231_lese_adresse = 209 '&HD1 I2C Adresse der Uhr DS1307
      63. 'I2cinit
      64. '---#################----Hauptprogramm----################-------
      65. Do
      66. ' X = Ischarwaiting()
      67. ' If X = 1 Then 'we got something
      68. Z = Inkey()
      69. If Z = 13 Then Input Data_in
      70. Locate 1 , 1
      71. Lcd Data_in
      72. 'Led = 1
      73. 'Wait 2
      74. 'Led = 0
      75. 'End If
      76. Loop
      77. End
      Alles anzeigen
    • Verboten nicht, aber es bleiben thread-Leichen übrig, und es wird unnötig Zeit investiert.
      Wenn zB. ein user Skifahren war und erst jetzt diesen thread hier sieht, macht es sich womöglich Lösungsgedanken, wo es doch woanders schon erledigt wurde. Schade um seine Zeit.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • daja schrieb:

      Es sind hier einige die im anderen Forum nicht sind und andersrum.
      Deshalb dieses vorgehen, ist doch nicht verboten oder?
      Und ja Geduld war noch nie meine Stärke.
      Der kleine Unterschied ist, dass du dir hier die Geduld nimmst, und deine Helfer (oder die, die es sein könnten) einfach 4 Tage im Dunkeln stehen lässt und keinen Quellcode postest, während du auf der anderen Seite gleich im ersten Beitrag den Code mitlieferst.
      So kann dir keiner hier helfen.
      Und so ist Stefans Reaktion verständlich, nach meiner Meinung.