PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMEGA2560 Beispielprogramm



mattschach
29.12.2007, 22:06
Hallo,

Ich bin neu hier und beschäftige mich auch noch nicht lange mit m.

Da ich ein wenig C++ kann, wollt ich in dieser Sprache auch den controller programmieren; das übertragen ect.. klappt schon.

Da ich aber noch keinerlei Erfahrung in mc programmierung in c/c++ habe, wollt ich fragen ob mir jemand von euch vielleicht ein einfaches (erklärtes) Bsp. hier posten kann... was z.B. die LED kurz aufblinken lässt... oder eine Nachricht an die RS232 sendet...?

Schonmal vielen Dank im voraus..

mfg mattschach O:)

Christopher1
29.12.2007, 22:35
Hallo,
guck dir mal das WIKI an dort sind diese Dinge erklärt:
https://www.roboternetz.de/wissen/index.php/Hauptseite
Ein weiteres gutes Tutorial findest du unter:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

mattschach
29.12.2007, 23:15
Vielen Dank für deine Antwort, werd mir die Seiten durchlesen...
Kurze Frage noch - Bei den aufgelisteteten compatiblen mc für Avr-gcc ist der atmega2560 nicht aufgelistet?

mattschach
29.12.2007, 23:18
Vielen Dank für deine Antwort, werd mir die Seiten durchlesen...
Kurze Frage noch - Bei den aufgelisteteten compatiblen mc für Avr-gcc ist der atmega2560 nicht aufgelistet?

mattschach
30.12.2007, 15:38
Hy, ich hab versucht eine header-datei für den entsprecheneden mc zu finden, hab aber nur atmega2560-Dev gefunden (auf Englisch) und hab keine Ahnung was ich machen soll...

Hat den nirgendjemand vielleicht eine Beschreibung oder ein winziges Beispielprog. für mich?

Ich wäre sehr dankbar

mfg mattschach

Slein
31.12.2007, 10:52
Paar kurze Tips:
1. AVR-Studio 4 runterladen
http://www.atmel.com/
dort nach avr studio suchen
2. neues Projiekt erstellen
1. Seite avrgcc aussuchen und namen eingen
2. Seite avr-simulator und 2560 auswählen
3. code kopieren

#include <avr/io.h>

void mswait(unsigned short ms) {

unsigned short j=0, k=0, x=0;

for (j=1;j<=ms;j++){for (k=0;k<=27;k++) {for (x=0;x<=102;x++);}} // k<=27,x<=102 fuer rund 1 ms

return;
}

void init(void) {

DDRD = 0xff; //PortD is komplett Ausgang
PORTD = 0xff;

return;
}

int main (void) {

init();

ledloop:
PORTD = 0x00;
mswait (255);
PORTD = 0xFF;
mswait (255);
goto ledloop;

return 0;
}

Kannst LED an portd anschließen. Pin->400Ohm->(plattes Ende)LED->Vcc (5V)
4. compilieren
5. den avr programmieren (is im avr studio was mit drinnen zu)
6. blinkenlights bestaunen

PS: habs hier mit nem Mega8 probiert, der code läuft so auch auf andern MegaAVR
PPS: nen Mega16 oder 8 hättens auch getan :-s

mattschach
31.12.2007, 13:25
Vielen Danke!
werd´s gleich mal ausprobieren

mattschach
31.12.2007, 13:36
"5. den avr programmieren (is im avr studio was mit drinnen zu) "
klappt bei mir nicht, benutze ein STK200/300 kompatiblen Programmer (hab auch über USB angeschlossen)... was für einstellungen muss ich vornehmen?
Es kommt wenn ich "AVR Prog" anklicke, die Meldung: "not supported Board found"

Scriptkiddy
04.01.2008, 10:31
Hallo erstmal!!

Ich bin bei diesem Thread heimlich am "mitüben"...
Habe einen mega 32 Controller..

Wenn ich aber compilieren will,, kommt vollgende Fehlermeldung:



Vielen Dank im Voraus!!

mattschach
04.01.2008, 11:06
Ich schätze das du ein ganz anderes Problem hat... Hast du schonmal probiert mit avr-dude die Daten zu Übertragen?

Scriptkiddy
04.01.2008, 16:49
Hi
Ehrlich gesagt, weiss ich nicht mal was der avr-dude ist. Auch habe ich keine Ahnung wie man ein Programm überträgt. Ich hatte gehofft, dies durch die StepbyStep-Anleitung von Christopher1 herauszufinden.

Ich kenne eigentlich nur denn PIC und programmiert hab ich den mit assembler. "C" kenn ich nur durch das Consolenprogrammieren und habe gehofft hier irgendwie den Start zum Mega32 zu schaffen.

Weiss jemand wo so ein Anfänger wie ich am besten zu lesen Beginnt!? Das Forum ist so riesig und irgendwie habe ich bis jetzt noch keine wirkliche SchrittFürSchritt anleitung gefunden die für mein tiefes Level geeignet ist. Wie gesagt,,ich hoffte, dass ich durch den Beitrag von Christopher schlauer werde....

Für Tipps danke ich im Voraus

Slein
04.01.2008, 17:40
@scriptkid
Mach doch einfach was die Meldung sagt :)
WinAVR is ne open source Entwicklungsumgebung für die AVRs und installiert u.a. ne komplette build Umgebung für den AVRgcc incl. AVRgcc.

http://winavr.sourceforge.net/

Fehlermeldungen sind zum Lesen da :) und sorry, habs nicht erwähnt weil ich das auch mal gelesen, gemacht und dann schnell wieder vergessen hab...

edit:
Da du Erfahrung mit ASM aufm PIC hast, schau dir diese Seite mal an:
http://www.avr-asm-tutorial.net/avr_de/index.html
Hat mir am Anfang ne Einführung gegeben und sehr viele Fragen beantwortet. Ist schon etwas älter und mit nem 90s.... gemacht, aber die Infos passen AFAIK so gut wie alle auch für die MegaAVRs. Einführungen zu den Registern/Ports u.a., den Grundlagen halt.

Vollständige Documentation der AVR ASM Instructions:
http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

Scriptkiddy
04.01.2008, 19:34
@slein

Danke mal im Voraus...

Ich hatte die Meldung schon gelesen,,,, und unter atmel gesucht... nix gefunden...

Naja...ofenbar schlecht gesucht.... tja, sorry

mattschach
04.01.2008, 20:04
zum anfangen kann ich dir auch die Seite http://www.mikrocontroller.net/
empfehlen

PS: WAS ist mit mein Prob????

Slein
05.01.2008, 12:00
das STK200/300 wird wohl nicht miehr vom AVRStudio4 unterstützt.
Schau dir das mal an:
http://www.reichelt.de/?;ACTION=3;LA=2;GROUPID=2969;ARTICLE=45040;SID=29a @3eCqwQAR0AABmMKVM3071b69539c9966b54318d731cef71c8
Ist für USB und wird vom AVRStudio4 unterstützt, kann aber nur in system programming. Brauchst zum experimentieren also noch ne Platine (löten) auf der du dann den AVR in der Schaltung programmierst. Ist halt kein komplettes STK.

Früher oder später wirst du eh nur noch so arbeiten wenn du nicht mehr nur experimentierst.

Hier ist ne Anleitung dazu:
http://www.atmel.com/dyn/resources/prod_documents/AVRISPmkII_UG.pdf

Slein
05.01.2008, 12:16
Kurze Einführung: In System Programming
Programmiert werden die AVRs kurz gesagt über 3 Datenleitungen, Reset, Masse und Versorgungsspannung. Geschickterweise packt man das auf nen 6 oder 10 Pin Pfostenleiste an die dann der Programmer angeschlossen wird.

Im Anhang eine Schaltung mit 6Pin ISP-Header. Bitte nicht nachbauen, Teile der Schaltung hält sich nicht an Atmels Datenblätter und ich weiß nicht mehr genau was für Fehler sonst noch drin sind. Das ISP an sich ist Ok. Rechts oben sitzt ein Mega8 und die 6 Pins ganz oben rechts sind zum Programmieren. Aufpassen, das sind bei jedem AVR andere Pins!

Die Belegung des Steckers findet sich in der Anleitung im Post vorher auf Seite 26. Die Pinbelegungen der AVRs stehn in den Datenblättern hier: http://www.atmel.com/dyn/products/devices.asp?family_id=607

Am Ende wird die Schaltung ganz normal mit Spannung versorgt und der Programmer angeschlossen. Mitten im Betrieb im AVRStudio4 auf program klicken und schon ist das Prog da drauf und läuft (oder auch nicht :) ).

mattschach
05.01.2008, 12:52
Danke!

Hab mir das AVRISPmkII schon bestellt, denke damit bin ich gut bedient!

Scriptkiddy
06.01.2008, 15:58
@ Slein

Ich habe noch ein kleines Problem bei deinem Punkt 5:
5. den avr programmieren (is im avr studio was mit drinnen zu)

Ich schaffe es einfach nicht den RN zu connecten. Weder per RS232 noch üer ISP.

Welche Einstellungen muss ich machen bei "select AVR Programmer"!? Muss ich auf dem Board noch irgend einen Dipschalter umstellen!?

Merci im Voraus....