Hallo Leute, ich habe ein LCD mit einem St7920, ich betreibe es mit der u8g library und einem AVR ATmega3250. Es funktioniert so weit so gut allerdings habe ich ca. 1 FPS, das soll aber besser werden, wenn man nicht den software spi sondern den hardware spi verwendet. Aber wie mache ich das? Ich habe mal u8g_InitSPI(&u8g, &u8g_dev_st7920_128x64_4x_sw_spi, PN(1,5), PN(1,3), PN(1,4), U8G_PIN_NONE,U8G_PIN_NONE); zu u8g_InitSPI(&u8g, &u8g_dev_st7920_128x64_4x_hw_spi, PN(1, 5), PN(1, 3), PN(1, 4), U8G_PIN_NONE, U8G_PIN_NONE); geändert. Die Pins habe ich alle so gelassen. Offenbar scheint das nicht alles zu sein oder ich habe sogar was falsch gemahct, denn es geht gar nichts. Hat jemand eine Ahnung was ich da machen muss?
:
Bearbeitet durch User
Til M. schrieb: > das soll aber besser werden, wenn man nicht den software spi sondern > den hardware spi verwendet. Aber wie mache ich das? Zuerst musst du mal das Diplay an den richtigen Pins angeschlossen haben... > Ich habe mal xxx zu yyy geändert. Und was ist dann passiert? Heißt "gar nichts", dass das Programm nicht kompiliert wird? Oder dass der Compiler zwar tut, aber nicht mal die "still alive" LED mehr blinkt? (Wie, du hast gar keine solche LED? Schade...) Und was sagt der Debugger?
:
Bearbeitet durch Moderator
Danke für deine Antwort. Bei Verwendung des software spi habe ich die Pins richtig angeschlossen. Sonst würde es ja nicht funktionieren. Was ich nicht genau weiss, ist ob die Pins im hardware spi gleich bleiben, oder verändern die sich? Naja was dann passiert ist, ist, dass das was vorher funktionierte nicht mehr funktioniert. Bzw. es zeigt nichts mehr an. Der Debugger sagt gar nichts.
:
Bearbeitet durch User
Til M. schrieb: > Danke für deine Antwort. > > Bei Verwendung des software spi habe ich die Pins richtig angeschlossen. > Sonst würde es ja nicht funktionieren. Was ich nicht genau weiss, ist ob > die Pins im hardware spi gleich bleiben, oder verändern die sich? Das kommt drauf an, welche Pins du genommen hast. Bei SW-SPI kannst du dir die aussuchen. Bei HW-SPI sind die dir vorgegeben. Auch im Arduino Zeitalter ist das Datenblatt des verwendetn Prozessors immer noch dein Freund.
Danke für deine Antwort. Muss ich nun also die Pins so initialisieren, dass sie mit dem des uC übereinstimmen? z.B. wenn MOSI am PB2 ist, muss ich das im Programm berücksichtigen und kann nicht selber entscheiden, habe ich das richtig verstanden?
>Muss ich nun also die Pins so initialisieren, dass sie mit dem des uC >übereinstimmen? Gegenfrage: Welchen Sinn macht es andere Pins zu nehmen?
Logischer Weise keinen. Wenn ich diese nun initialisiere, habe ich an den Pins keine Spannung. Während ich bei software spi an allen verschiedene Taktsignale hatte, habe ich bei hardware spi an keinem eine Spannung. Wieso ist das so? Ehrlich gesagt, ich habe nicht sehr viel Ahnung und eine detailierte Antwort wäre echt toll. Edit: Was ich noch hinzufügen wollte, in der Library wird von den Pins: SCK, MOSI, CS, A0 und Reset gesprochen. Mein uC hat aber SCK, MOSI, MISO und SS. Welcher ist jetzt welcher?
:
Bearbeitet durch User
Til M. schrieb: > Es funktioniert so weit so gut allerdings habe > ich ca. 1 FPS, das soll aber besser werden, wenn man nicht den software > spi sondern den hardware spi verwendet. Falls das an dem reinen Transfer liegt und nicht daran, dass der Controller die ganze Zeit damit beschäftigt ist an dem Bild rum zu rechnen. 128x64 ist noch ziemlich harmlos von der reinen Datenmenge her. Til M. schrieb: > SCK, MOSI, CS, A0 und Reset gesprochen. > Mein uC hat aber SCK, MOSI, MISO und SS. Welcher ist jetzt welcher? SCK -> SCK MOSI -> MOSI CS -> I/O A0 -> I/O Reset -> I/O SS ist Slave-Select, den kann man auch als Chip-Select Ausgang benutzen, der muss sogar generell als Ausgang benutzt werden wenn man die SPI Unit im Master-Modus benutzen möchte, der könnte aber genau so gut auch die Reset-Leitung vom Display bedienen.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.