z.B ist die SPI Schnitstelle mit auf den Pins von 11 - 13 zu finden.
Finde leider gerade auf meinem Rechner nicht die PDF von Pixxxie. Dort wurden mal alle Pinout von den gängigen Boards gezeigt. OffTopic: So einen Therminal Printer, muss man sowas haben?
Wobei, wenn ich das so lese
Easy to be controlled by Arduino board or other Microcontroller , just connect the Serial interface, ( RX,TX ) .
Das Teil ist bei denen sicherlich nur nicht kompatibel, da es beim Mega Serial1-3 und nicht Serial heißt. Vermutlich problemlos anpassbar.
Sowas liegt nur an schlechter Programmierung der entsprechenden Library. Es gibt natürlich Unterschiede, aber die Prozessoren funktionieren im Prinzip gleich. Wo man etwas anders machen muss fragt man dann aber welcher Prozessor vorhanden ist und macht die Stelle entsprechend anders.
Wenn ich mir dir Lib mal so auf die Schnelle ansehe, sehe ich aber nicht wieso das nicht kompatibel sein soll. Da ist nichts UNO-spezifisches drin. Auf dem Mega könnte man sie allerdings so umschreiben, dass eine der Hardware Schnittstellen für Serial verwendet wird.
Bei AdaFruit steht da auch was anderes dabei:
Note: We have these working great with classic Arduino UNOs (and other Atmega328-based 'duinos), and others have gotten them to work with Megas and other Arduino-compatibles that have a Serial port available
Wie gesagt kann man die Lib leicht so ändern dass sie statt SoftwareSerial, Hardware Serial verwendet. Oder AltSoftSerial.
Aber SoftwareSerial geht auch auf dem Mega. Nur braucht man es da nicht unbedingt.
sschultewolter:
Das Teil ist bei denen sicherlich nur nicht kompatibel, da es beim Mega Serial1-3 und nicht Serial heißt. Vermutlich problemlos anpassbar.
Ich sehe gar nicht wieso das nicht gehen soll.
Die Lib verwendet SoftwareSerial. Das geht auch auf dem Mega, aber ich würde es so abändert, dass man statt dessen Serial1 verwendet. Das ist schnell gemacht.
Hier mit bedingter Kompilerung die #includes für SoftSerial weglassen (wobei man das nicht unbedingt braucht, das es standardmäßig eh installiert ist)
HaWe:
wie kommt das zustande? was passt hier nicht zusammen?
Das kann zustande kommen, wenn eine Library aus Geschwindigkeitsgründen nicht mit langsamen Arduino-Komfortfunktionen (z.B. "digitalRead" oder "digitalWrite") arbeitet, sondern wenn sie direkt auf Register der Hardware zugreift. Andere Hardware, andere Register.
Wenn eine Library so etwas an den Funktionen der Arduino Core-Library vorbei macht und stattdessen direkt auf Hardwareregister zugreift, sind solche Libraries dann nur noch für die Controller verwendbar, an die der Code mit bedingter Compilierung angepaßt wurde.
danke für die vielen Antworten!
Unterm Strich klingt alles für mich so, als wäre es ein reines Programmierproblem mit SoftSerial.
Es wundert mich daher um so mehr, dass die Hersteller es dennoch wohl nicht hinkriegen und sich genötigt sehen, diesen Hinweis dazu zu schreiben.
Tatsächlich habe ich den Drucker ja nicht, er wäre aber auch nur interessant, wenn er mit Hardware Serial liefe, denn SoftSerial gibt bei mir (zumindest mit dem Uno2009/168) Probleme, wenn gleichzeitig über ana4+5 eine i2c-Verbindung zu einem i2c-Master besteht - ich möchte ihn ggf als Druckerinterface für den i2c-Master verwenden.
bedeutet "verwendet einen Timer" , das man einen zusätzlichen Timer-Intr braucht?
Oder hat das damit nichts zu tun?
ps, edit,
ja, klingt so, und disabled auch pins - auf dem Uno geht das nicht (hab da eh zuwenig), auf dem Mega macht es vllt nicht so viel aus, da hat man ja deutlich mehr.
Es wird Timer1 verwendet. Damit ist Timer2 noch frei verfügbar
Und es ist lediglich die PWM Funktion die dann auf den zu dem Timer gehörigen Pins nicht mehr geht. Als normale I/Os kann man sie noch verwenden. Das sollte eigentlich klar sein und geht es auch dem Text deutlich hervor.
1 Timer verwende ich ja schon aber das sind noch zu viele böhmische Dörfer, ich habe bisher absolut keine Hardware (-nahe) Programmiererfahrung. Kommt vllt noch mal.
Trotzdem wunderts mich dass die Hersteller das mit dem mega-Treiber nicht alleine gebacken kriegen.
Die Information auf der eBay Seite ist einfach falsch. Auf der LadyAda Seite steht es auch anders dort. Wie gesagt, sollte das auch ohne irgendwelche Änderungen auf dem Mega laufen.
Die allermeisten Libs laufen sowohl auf dem UNO und Mega. Attiny oder Due Support ist dagegen was anders.
Und du kannst dein Programm auch problemlos auf Timer2 umstellen. Da muss man nur im Datenblatt auf Seite 162 die Prescaler Einstellungen nachschauen, da die anders sind. Dadurch kann man kompensieren, dass das Compare Register nur 8 Bit hat (statt 16). Dann auf Seite 160 den Modus nachschlagen, wo man sieht dass CTC durch das WGM21 Bit in TCCR2A aktiviert wird.
Der Rest ist analog zu Timer1.