Hallo, habe mir dies Entwicklungsboard besorgt und einen bootloader für den Atmega 128A für den Arduino habe ich gefunden. Nun habe ich auch Testweise "Blink" Raufgeschrieben, aber das er mir zusätzlich über Serial LED An oder Aus ausgibt, da dieses board keine LED hat. Es kommen allerdings in putty nur wilde Zeichen an, denke das die Belegung an meinem Board anders ist (die dateien stammen vom crumbuino128) Baudrate(9600) ist bei dem setupteil sowie in putty eingetragen, daran kann es nicht liegen. Wie kann ich die Pins für dieses Board selber richtig belegen odr gibt es da was fertiges schon? Vielen Dank Benjamin
:
Bearbeitet durch User
Benjamin L. schrieb: > Wie kann ich die Pins für dieses Board selber richtig belegen Indem Du in den Schaltplan des Board schaust und in das Datenblatt des darauf verbauten ATmega.
Ja, den Schaltplan habe ich, nur wie funktioniert das in der Arduino Software? arduino.pins.h habe ich gefunden, da werde ich aber nicht schlau draus, viele ist da nur kommentiert drinne.
Benjamin L. schrieb: > Ja, den Schaltplan habe ich, nur wie funktioniert das in der Arduino > Software? Ach so, hab ich falsch gelesen, Du willst also Arduino Software damit verwenden. Das geht bestimmt, aber da muss Dir jemand helfen der sich in den Arduino-Innereien auskennt. Ich persönlich an Deiner Stelle würde das lieber zum Anlass nehmen mich von den Fesseln und Unzulänglichkeiten der Arduino-Software zu befreien und das volle Potential zu entdecken. Das fängt schon bei der unsäglichen Arduino-"IDE" an die ja noch nichtmal einen vernünftigen Editor beinhaltet und eher frustet als hilft und geht dann weiter mit dem undurchschaubaren Pseudo-C++-Gestrüpp, der unnötigen Arduino-Pinnummern-Abstraktion (mit der Du gerade kämpfst) und vielem mehr. Ich würde mich von all dem auf einen Schlag befreien, das einzig Sinnvolle ist der Arduino-Bootloader, alles andere würde ich für einen sauberen Neuanfang und Einstieg in die wirkliche Welt über Bord werfen. Meine Empfehlung an Dich: * Eclipse-CDT * avr-gcc (nimm die Version von Atmel) * Eclipse AVR-Plugin * Avrdude und * Als Ausgangspunkt ein minimales Blink-Beispiel in reinem C, das ist gerade mal ein Dutzend Zeilen lang (inklusive ausführliche Kommentare) und ausgehend von dem springst Du dann ins kalte Wasser und erarbeitest Dir die Programmierung dieses Controllers (und anderer ähnlicher) anhand der Datenblätter und Schaltpläne des jeweiligen Boards in kleinen aber wichtigen Schritten. Das bringt Dich auf lange Sicht erheblich weiter als das ewige Stochern im dichten Arduino-Nebel.
okay, eclipse kenne ich, damit haben wir in der Schule mal Java gemacht. Werde mir das mal ansehen. kann man das mit den plugins alles "Portable" installieren oder muss das fest instllier werden im system? avr-gcc und so? Eclipse lief mein ich so
Bernd K. schrieb: > Meine Empfehlung an Dich: > > * Eclipse-CDT > * avr-gcc (nimm die Version von Atmel) > * Eclipse AVR-Plugin > * Avrdude Naja, alles nicht schlecht, aber bei dieser Kombination wird er erst mal mit der Konfiguration der ganzen Bausteine so viel zu tun haben dass er die Lust verliert. Wenn man nicht den neuesten latest-and-greatest Prozessor braucht ist das AVR Studio (4.18) die leichteste Art seine Projeke ganz alleine selbständig hochzuziehen. Da kommt man auch schnell zu seinen lauffähigen Fünfzeiler.
Benjamin L. schrieb: > kann man das mit den plugins alles "Portable" > installieren oder muss das fest instllier werden im system? Du kannst das alles Portable machen. Zunächst lädst Du Dir das Eclipse Zip File runter, das fertige "Eclipse für C/C++" Bundle und entpackst es in ein Verzeichnis Deiner Wahl. Keine Installation nötig. Dann lädst Du Dir avr-gcc runter (von der Atmel-Webseite), entpackst es ebenfalls in ein Verzeichnis Deiner Wahl. Dann installierst Du in Eclipse (mittels des eingebauten "Marketplace") das AVR-Plugin. Das konfigurierst Du dann noch um ihm mitzuteilen in welchen Ordnern die zuvor heruntergeladene und entpackte avr-gcc Toolchain und make und Konsorten zu finden sind (und auch wo avrdude zu finden ist das Du ebenfalls runtergeladen und in einen Ordner Deiner Wahl entpackt hast). Pack alles in einen Ordner mit kurzem Pfadnamen, z.B. "C:\avr\" und darin in entsprechende Unterverzeichnisse, dann kannst Du das ganze in einem Rutsch auch von einem auf einen anderen Rechner verfrachten. Das sollte im Prinzip funktionieren.
AVRUser schrieb: > aber bei dieser Kombination wird er erst > mal mit der Konfiguration der ganzen Bausteine so viel zu tun haben > dass er die Lust verliert. So viel ist das auch wieder nicht, eigentlich nur die Konfiguration von 2 oder 3 Pfaden im AVR-Plugin und fertig. Ich glaube nicht daß er so schnell die Lust verliert, wenn er es wirklich haben will dann schafft er es.
ok, ich werde mich mal versuchen da das board keine LED hat wär es möglich Serial ein beispiel zu bekommen? baudrate 9600 Text an pc senden LED AN pause LED Aus Pause quasi den blink als Serial? also den AVR-GCC finde ich bei atmel leider nicht oder heißt es da anders?
:
Bearbeitet durch User
Die Initialisierug der seriellen Schnittstelle (das würd ich mir parallel dazu auch mal im Datenblatt anschauen, die Bedeutung der einzelnen Register und bits):
1 | // UART
|
2 | // (dieses spezielle Board von Pollin ist mit 7.3728 Mhz getaktet,
|
3 | // UBRRO-Wert von Wormfood's Baudrate Calculator)
|
4 | |
5 | UBRR0 = 95; // 9600 Baud |
6 | UCSR0A = (1 << U2X0); // double-speed |
7 | UCSR0B = (1 << RXEN0) | (1 << TXEN0); |
8 | UCSR0C = (1 << USBS0) | (1 << UCSZ01) | (1 << UCSZ00); |
und um ein Zeichen zu senden dann folgendes:
1 | void uart_send8(char val) { |
2 | // warte (falls noetig) bis es frei ist
|
3 | loop_until_bit_is_set(UCSR0A, UDRE0); |
4 | |
5 | // das löst den Sendevorgang aus
|
6 | UDR0 = val; |
7 | }
|
Natürlich fehlt jetzt noch die main() und eine while(1) loop mit einem delay, und auch eine funktion die nicht nur ein einziges Zeichen sondern einen ganzen String senden kann, aber das ist dann nicht mehr Board-spezifisch, das hab ich jetzt noch nicht hingeschrieben aus Faulheit, aber die Initialisierung des UART hätte Dich einige Nerven gekostet, das ist der härteste Brocken, der fehlende Rest ist einfach)
:
Bearbeitet durch User
ok momenten hänge ich beom avr-gcc fest was ich da downloaden muss
Benjamin L. schrieb: > ok momenten hänge ich beom avr-gcc fest was ich da downloaden muss Hier gibts downloads für die avr-gcc Toolchain. Nicht verwirren lassen von der Versionsnummer, da steckt ein neuerer gcc drin, Atmel hat sich da wohl aus unerfindlichen Gründen eigene höchst verwirrende Versionsnummern ausgedacht. http://www.atmel.com/tools/ATMELAVRTOOLCHAINFORWINDOWS.aspx Ich bin mir jetzt nicht 100% sicher ob das für Windows einfache zip files zum Entpacken sind oder Installer die sich automatisch irgendwohin entpacken, notfalls mal ausprobieren. Die Downloads für Linux (das ist was ich verwende) sind einfache Archive zum manuell Auspacken. Letzten Endes kann (sollte) man alles in einen Ordner entpacken mit einem nicht allzulangen Pfadnamen und möglichst ohne Leerzeichen im Namen.
okay, das ist eine exe. Aber ok könntest du mir zum testen mal ein fertiges projekt zukommen lassen?
Benjamin L. schrieb: > Aber ok könntest du mir zum testen mal ein fertiges projekt zukommen > lassen? Heute nicht mehr (keine Zeit mehr), vielleicht morgen Abend.
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.