Ich schreibe gerade ein Programm in Atmel Studio 7, das ich gerade installiert und gestartet habe. Ich habe das Studio für Arduino eingerichtet und den Atmega128 in die Bibliothek der unterstützten Chips aufgenommen. Alles ist gut dort. Wenn ich versuche, die SoftwareSerial-Bibliothek zu verwenden und zu kompilieren, erhalte ich den Fehler, dass Atmega128 und Atmega64 SoftwareSerial nicht unterstützen. Warum ist das? Was ist so anders an diesem AVR über die atmega328, etc, dass es die Bibliothek nicht unterstützt. Gibt es einen besseren Ansatz, SoftwareSerial oder SoftUart auf dem atmega128 zu verwenden? DankeWarum SoftwareSerial nicht mit Atmega128 funktioniert
Antwort
Haben Sie diesen Kompilierfehler bekommen: This version of NewSoftSerial supports only 20, 16 and 8MHz processors
?
Dies kommt von diesen definiert in der cpp-Datei. Es könnte funktionieren, wenn Sie F_CPU als 8000000 definieren und sicherstellen, dass Sie das Register tatsächlich so einstellen, dass die Taktgeschwindigkeit erreicht wird. Einige Prozessoren verwenden standardmäßig eine langsamere Taktfrequenz. Konsultieren Sie das Hardware-Handbuch.
Beachten Sie, dass F_CPU definiert werden muss, bevor die Datei NewSoftwareSerial.cpp verarbeitet wird. Sie können Definitionen direkt in der Befehlszeile mit einem D-Schalter erstellen.
#if F_CPU == 16000000
[snip]
#elif F_CPU == 8000000
[snip]
#elif F_CPU == 20000000
[snip]
#else
#error This version of NewSoftSerial supports only 20, 16 and 8MHz processors
#endif
Hallo, danke für die Antwort. Ich habe F_CPU Fehler beim Kompilieren nicht bekommen. Und ja, ich habe die F_CPU auf 16 MHz eingestellt. Der einzige Fehler ist, dass "ATmega64 und ATmega128 SoftSerial nicht unterstützt!" Wenn ich in der SoftwareSerial.h-Datei nachschaue, wird das tatsächlich in Zeile 44 codiert. – Eddie
Durch meine Forschung, während die Arduino-Bibliotheken und einrichten, die ihre enthalten SoftwareSerial Bibliothek unterstützt nicht die ATMEGA64 und ATMEGA128 wegen der Unterschiede in der PIN und Interrupt auf diesen Chips. Ich habe erfolgreich softserial auf anderen GPIO-Pins auf dem atMega128 eingerichtet, indem ich this example ändere. Dieses Beispiel dient nur zum Senden. Ich arbeite immer noch an dem Empfangsteil, weil es Interrupts und Taktung einrichtet. Eine wichtige Anmerkung, die Sie beachten sollten, ist sicherzustellen, dass Ihre Uhreinstellungen während Ihres gesamten Projekts übereinstimmen und die seriellen Bauds ordnungsgemäß eingestellt sind. Ich habe meinen Code mit verschiedenen Baudraten getestet.
Als eine Randnotiz für Anfänger habe ich festgestellt, dass das Testen mit einem Arduino großartig ist. Wenn Sie jedoch versuchen, zu einem benutzerdefinierten C-Projekt zu wechseln, ist es äußerst schwierig, vom Arduino-Projekt in ein sauberes C-Projekt zu migrieren. Meiner Meinung nach ist es fast einfacher, C einfach zu lernen und in der Atmel Studio-Umgebung zu testen und sich von Arduino fernzuhalten. Ich hoffe, das hilft jemandem, der mit dem Programmieren beginnt.
- 1. SoftwareSerial Bluetooth leere Strings schreiben?
- 2. warum regex mit \ [nicht funktioniert
- 3. Warum | funktioniert nicht mit finden?
- 4. Warum funktioniert || nicht mit Arrays?
- 5. Warum funktioniert UIView.exclusiveTouch nicht?
- 6. cell.detailTextLabel.text funktioniert nicht ... warum
- 7. Warum funktioniert @ Array.clear nicht
- 8. Warum Überladung nicht funktioniert?
- 9. Warum funktioniert String.replace nicht?
- 10. Warum funktioniert socket.sendall() nicht?
- 11. Warum funktioniert GetRequestToken nicht?
- 12. Warum Clipboard.SetText nicht funktioniert?
- 13. Warum wiederholen nicht funktioniert?
- 14. Warum Weiterleitungsreferenz nicht funktioniert?
- 15. Warum DataColumn.Caption nicht funktioniert?
- 16. Warum history.pushState nicht funktioniert?
- 17. Warum funktioniert appendChild nicht?
- 18. Warum funktioniert EM_SETTEXTMODE nicht?
- 19. Warum funktioniert reloadData() nicht?
- 20. Warum funktioniert file_exists() nicht?
- 21. Warum funktioniert ToolboxBitmapAttribute nicht?
- 22. warum pd.crosstab nicht funktioniert?
- 23. Warum funktioniert nicht?
- 24. Warum setText funktioniert nicht?
- 25. Warum frumentTransaction.commit funktioniert nicht?
- 26. Wie SoftwareSerial-Variable in einer Funktion in Arduino verfügbar machen
- 27. Warum funktioniert self.navigationItem.hidesBackButton nicht?
- 28. Warum funktioniert Array.push.apply nicht?
- 29. Page.ClientScript.RegisterStartupScript funktioniert nicht - warum?
- 30. Warum funktioniert Base64EncodeData nicht?
Was ist die genaue Fehlermeldung? –