Ich habe wieder eine Frage zum Arduino-TFT-LCD(http://arduino.cc/en/Main/GTFT): ICh möchte gerne SCK und MOSI auf andere Pins setzen. Ich habe es versucht, so wie hier(http://arduino.cc/en/Reference/TFTLibrary) beschrieben, aber der Compiler meint, das es die TFT() Funktion nicht mit 5 Parametern gibt. Mir würde jetzt nurnoch einfallen, in der arduino_pin.h diese Pins zu verändern. Das Problem dabei ist aber, dass ich nicht die Hauptpinbelegung für ein Projekt verändern möchte. Weiß jemand, wie ich das doch ohne SPI hinkriege? 12V DC PS:Ich kann die nicht im Programm überschreiben, da es Const-Variablen sind und keine defines
Der Compiler meint gar nichts, weil er keine Meinung hat. Er gibt nur Fehlermeldungen aus. Und ohne diese können wir nicht weiter helfen. Warum sollten die SCK und Mosi auf andere Pins? Weil es sexy ist?
PittyJ schrieb: > Warum sollten die SCK und Mosi auf andere Pins? Weil es sexy ist? Nein, weil die Pins 11,12,13 von dem Arduino Motorshield benutzt werden und ich sie nicht zur Ansteuerung von dem LCD benutzen kann. oder macht das MOSI und SCK nichts aus? Wäre gut wenn nicht;) PittyJ schrieb: > Er gibt nur Fehlermeldungen aus. Und ohne diese können wir nicht weiter > helfen. Bei mir nicht. Fehlermeldung/Meinung ;): Arduino: 1.5.4 (Linux), Board: "Arduino Uno" lcdtest2:32: error: no matching function for call to ‘TFT::TFT(int, int, const uint8_t&, const uint8_t&, int)’ home.../arduino-1.5.4/libraries/TFT/src/TFT.h:17: note: candidates are: TFT::T home.../arduino-1.5.4/libraries/TFT/src/TFT.h:15: note: TFT::TFT(const TFT&)
12V DC schrieb: > PittyJ schrieb: >> Warum sollten die SCK und Mosi auf andere Pins? Weil es sexy ist? > > Nein, weil die Pins 11,12,13 von dem Arduino Motorshield benutzt werden > und ich sie nicht zur Ansteuerung von dem LCD benutzen kann. oder macht > das MOSI und SCK nichts aus? Wäre gut wenn nicht;) also wenn das Motorshield auch per SPI gesteuert wird, spricht nichts dagegen das gleichzeitig auch fürs LCD zu verwenden. Nur CS der SPI-Slaves muss getrennte PINs haben. Sascha
Sascha Weber schrieb: > Nur CS der > SPI-Slaves muss getrennte PINs haben. Is ja logisch. Sascha Weber schrieb: > also wenn das Motorshield auch per SPI gesteuert wird, spricht nichts > dagegen das gleichzeitig auch fürs LCD zu verwenden. Ich glaube da liegt das Problem: Die Pins 13 & 12 werden für die Direktsteuerung der Motoren verwendet und der Pin 11 wird zur PWM-Steuerung von Motor B verwendet. Das Motorshield wird laut Schaltplan nicht mit SPI geseuert, aber keine Garantie. Sachaut lieber noch mal nach.
Also normalerweise schaut man, welche Peripherie man ansteuern will, dann schaut man welche und wieviele Pins man dafür braucht. Dann wählt man den Controller für diese Aufgabe aus. In der wunderbar verrückten Arduino Welt aber, da baut man einfach Shields aufeinander, wie beim Turmbau zu Babel, und wundert sich dann wenn spezielle Pins mehrfach belegt sind. Natürlich weiß man auch nicht, ob nun HW-SPI oder SW-SPI zum Einsatz kommt, weil man ja nix selber gemacht hat und von dem ganzen Kram sowieso keine Ahnung hat. Also weiß man auch nicht, ob man die SPI Schnittstelle verlegen darf. So muss man jetzt also im Nebel der eigenen Unwissenheit und des ganzen Arduino Wahnsinns stochern, wahllos in Header Dateien pfuschen (von denen man auch keine Ahnung hat) und hoffen und beten dass es vielleicht am Ende manchmal geht. Geht natürlich nicht, weil man bereits Compilerausgaben nicht lesen kann. Hätte man nun wirklich selbst Entwickelt, wäre es kein Problem, die PWM weg von SPI zu legen, oder falls das nicht geht, kann man SPI immernoch in SW machen oder auf einen Controller mit mehr PWM Ausgängen umsteigen, so dass sich nichts mehr im weg ist. Aber als Arduino-User bleibt einem lediglich blöd gucken übrig. Mit einem Wort: Arduino und seine User haben sich gegenseitig verdient. gruß cyblord
:
Bearbeitet durch User
Ja, sieht genz so aus, als ob beide Shields nicht parallel an einem Arduino betrieben werden können. Nimmt man halt 2 Arduinos, die über Rs-232 kommunizieren. da kann man auch auf einen Nano runter gehen, damit es kompakter wird. Oder halt selbst eine Platine entwickeln. Software-SPI würde ich nicht empfehlen.
@Cyblord Steck mal den Finger in den Hals und bring die Keule der Weihnachtsgans wieder raus, dann ist Dir wohler.
Das sämtliche Forenmitglieder immer so asozial sind. @cyblord Ich hab nunmal ein Arduino mit Motorshield und würde dies Display und benutze es auch. Das sind halt die Probleme von Arduino, andere µC-Boards haben andere Probleme... cyblord ---- schrieb: > Also weiß > man auch nicht, ob man die SPI Schnittstelle verlegen darf. Doch man kann es, wie ich aus dem Tutorial, das ich verlinkt habe etnehme. Außerdem kopiere ich, wenn es garnicht anders geht die Header für SPI, passe sie an und binde die ein. cyblord ---- schrieb: > Mit einem Wort: Arduino und seine User haben sich gegenseitig verdient. HÄ? An die anderen PRODUKTIVEN: Ich könnte das auch über die ICSP-SChnittstelle machen, aber da wirft sich bei mir die Frage auf, ob das MOSI & SCK der ICSP mit dem Pin 13,11 verbunden ist, oder ob ich das unabhängig von den Pins verwenden kann, denn dann hätte sich die Sache ja geklärt.
12V DC schrieb: > Ich könnte das auch über die ICSP-SChnittstelle machen, aber da wirft > sich bei mir die Frage auf, ob das MOSI & SCK der ICSP mit dem Pin 13,11 > verbunden ist, oder ob ich das unabhängig von den Pins verwenden kann, > denn dann hätte sich die Sache ja geklärt. Schau dir mal den Schaltplan von dem Arduino an. Da der Controller vermutlich nur ein HW-SPI hat, werden die Pins mit ein ander verbunden sein.
Fürs GLCD sollte man schon das HW-SPI nehmen, sonst kann man den Pixeln beim Aufbau gemütlich zuschauen. Bei vielen AVRs hat auch die UART einen SPI-Modus. Ansonsten den Motor auf andere Pins legen.
Peter Dannegger schrieb: > Ansonsten den Motor auf andere Pins legen. Schau dir das Motorshield mal genau an: Das ist alles fest mit den Pins verlötet. Da kann man mal nicht eben mal den Pin ändern. Deshalb frage ich ja nach. Kaj schrieb: > Schau dir mal den Schaltplan von dem Arduino an. Da der Controller > vermutlich nur ein HW-SPI hat, werden die Pins mit ein ander verbunden > sein. Da liegt das Problem: Auf dem Schaltplan ist das MOSI & SCK vom ICSP direkt an den AtMega angschlossen, und hat einen eigene Pins. Aber wnn dem so ist, dann kann man doch nicht den MISO und SCK einstellen(programmieren).
12V DC schrieb: > Aber wnn > dem so ist, dann kann man doch nicht den MISO und SCK > einstellen(programmieren). Das ist richtig, du kannst sie nicht unabhaengig von einander einstellen. Meiner Meinung nach hast du 2 Moeglichkeiten: 1. Du versuchst es mit dem UART in SPI Mode 2. Du musst dich entscheiden und eins von beiden mit Software-SPI betreiben (ich wuerde das Motorschield nehmen!) Du kannst natuerlich auch einen zweiten Controller nehmen usw, aber das ist meiner Meineung nach keine wirkliche Option... Gruesse
Kaj schrieb: > 2. Du musst dich entscheiden und eins von beiden mit Software-SPI > betreiben (ich wuerde das Motorschield nehmen!) Das Motorshield bentzt meines Wissens kein SPI, aber genau weiß ichs auch nich. Kaj schrieb: > Das ist richtig, du kannst sie nicht unabhaengig von einander > einstellen. Das versth ich nicht. ICh meinte eigentlich, das ich den MOSI und SCK Pin nicht programieren kann, wenn er in der HArdware festgelegt ist. Aber ich glaube ich versteh jetzt: Der MOSI und SCK vom ICSP eignet sich dafür, da er laut Schaltplan immer da ist und vor allem unabhängig vom Programm ist. Die SPI-Pins sind-soweit ich das versthe nur zusatz. Mit ner LED an Pin 13 geht das jetzt auch. Das Display geht nicht immer An und Aus. Ich probiers gleich auch nochmal mit Pin 11.
Mist, ich nehm das 12V DC schrieb: > Mit > ner LED an Pin 13 geht das jetzt auch. Das Display geht nicht immer An > und Aus. Ich probiers gleich auch nochmal mit Pin 11. zurück. Die LED blinkt im Takt der jeweiligen Übertragung. Die war nur zufällig so wie ich sie eingestellt hatte. Aber meine ursprüngliche Frage war ja, warum diese Funktion(TFT(int, int, int)) nicht so verwendet werden kann, wie auf arduino.cc beschrieben(Link oben), weil dann wäre es ja kein Problem. Der Compiler gibt mir die Fehlermeldung aus, das die Funktion nur 3 Int-PArameter besitzt statt(wie im tut) fünf.
Peter Dannegger schrieb: > 12V DC schrieb: >> Schau dir das Motorshield mal genau an > > Wo? Da: http://arduino.cc/de/Main/ArduinoMotorShieldR3 PS: GIDF ;)
knips die Pins des Motorschields die du für das SPI des glcds benutzen willst ab und such dir 2-3 andere Freie pins aus, an denen du Drähtchen lötest. diese neuen Pins deklarierst dann als Steuerpins für dein Motorshield.
Habe ich auch grad dran gedacht, das ich es aufs Breadboard stecke und anders verkable(is wohl das einfachste)... Aber wenn ihr mir trotzdedm sagen könntet, wie man das macht wie auf Arduino.cc beschrieben wäre ich euch sehr dankbar. Mich interressierts einfach.
12V DC schrieb: > ICh möchte gerne SCK und MOSI auf andere Pins setzen. Ich habe es > versucht, so wie hier(http://arduino.cc/en/Reference/TFTLibrary) > beschrieben, aber der Compiler meint, das es die TFT() Funktion nicht > mit 5 Parametern gibt. Siehe: http://forum.arduino.cc/index.php?topic=188144.0
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.