PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger mit AVR Studio4



hegewald
04.11.2011, 12:04
Hallo Leute,
meine bisherige Stärke ist Bascom mit der Entwicklungsumgebung
von myAVR (Board V2.07).
Auf meinem Tisch liegt eine Steuerung für einen Quadrocopter
mit einem AVR ATmega168PA (in SMD) ohne Software von
www.kkmulticopter.com (Version 5.5)
Habe das Teil bei ebay für ca. 40,-€ geschossen
Die Firmware habe ich runter geladen, aber das nützt mir mit meinem
Bascom garnichts. Also schnell Studio4 installiert, aber hier reichen
meine Englischkenntisse nicht aus.
Weis auch garnicht, ob ich mit meiner myAVR und Studio4 was
anfangen kann.
Gibt es Studio4 evtl. in deutsch?
Gibt es Bücher in deutsch?
Würde myAVR und studio4 kommunizieren?

Grüße

Rolf

dussel07
04.11.2011, 14:12
Hi Rolf,
kurze Zwischenfrage:
Willst Du an dem Programm von kkmulticopter was verändern oder willst Du nur den Controller flashen?
Gruß

hegewald
04.11.2011, 18:09
Hallo dussel07,
danke für Deine Antwort!
Vor dem Kauf dachte ich, die Software für einen Quadrocopter wäre bereits installiert.
War aber nicht! Habe das Modul mit einem Skop abgefragt...an den 6x Motorsteckern liegt kein
Signal an obwohl ich vom Empfänger die Pins AIL, ELE, THR und RUDD kontaktiert hatte.
Als Sender dient eine MC22 von Graupner.
Vom Verkäufer kam diese mail:
Hi Rolf,
Does the LED blink? about 1 time second ?
I loaded a test firmware for you, that is not for fly, if you power it
on, the LED should blinking, about1 time / second.

before you connect it to receiver, please load a flight firmware for
the board, you can download the firmwares from here:
http://www.kkmulticopter.com/index.php?option=com_content&view=category&id=58:firmware-downloads&Itemid=65&layout=default

if you don't load a firmware, the board will don;t work.

if you loaded a firmware, the board still doesn't work, please tell me
which firmware you loaded, and the fuse setting for the board you
used.
if it is possible, please make a short video for the test progress,
then I can see it better.

If the board defect, I will send a new one to you, but please check it first;)

Regards
Yanan


Grüße

Rolf

Hubert.G
04.11.2011, 18:17
Das ist doch schon eine *.hex Datei, die kannst du doch auch mit BASCOM übertragen.

hegewald
05.11.2011, 06:46
Hallo Hubert,
Deiner Idee bin ich heute Morgen nachgegangen und habe versucht ein ganz einfaches
Programm in Basic zu schreiben.. mit Hilfe von Bascom.
Bei der Übertragung auf einen Tiny2313 klappte alles.
Lade ich die .Hex File und will sie Compilieren stellen sich in den ersten 2 Zeilen Fehler ein.

So sieht das Ganze aus:

'Datei LED-Test01.bas
'System-Einstellungen
'================================================= =====
'Definition für ATtiny2313
$regfile "attiny2313.dat"

'Angabe der Taktfrequenz
$crystal = 1000000

Ddrb = 1
Ledrt Alias Portb.7
Ledgn Alias Portb.6
Ledgl Alias Portb.5

Do
Ledrt = 1
Ledgn = 0
Ledgl = 1
Loop
End

die Hex Datei sieht so aus:
: 1000000012c0189518951895189518951895189563
: 100010001895189518951895189518951895189578
: 100020001895189518958fed8dbfc0ece8eb4e2e06
: 10003000dd275d2eeee7f0e0a0e6b0e088278d93a7
: 100040003197e9f784b7082e877f84bf8fe181bda0
: 1000500087e081bd662481e087bbc798c69ac59ab0
: 10006000fccff894ffcf3197f1f70895689462f8c8
: 080070000895e89462f8089578
: 00000001ff
Error Line: 1 Unknown statement xxxxxxx(die erste Zeile)
Error Line: 2 Unknown statement xxxxxxx(die zweite Zeile)
was mache ich nur falsch? Verwende zur Übertragung die ISP-Schnittstelle vom myAVR

Grüße

Rolf

Hubert.G
05.11.2011, 09:01
Das ist schon klar, ein *.hex File kannst du nicht kompilieren. Dafür benötigst du den Quellcode der in C oder BASCOM oder auch Assembler geschrieben ist.
Das *.hex File ist ein schon kompilierter Quellcode und fertig zum laden.

dussel07
05.11.2011, 12:04
Da Du mit MyAVR bastels - warum lädst Du nicht das hex.File mit dem MyAVR ProgTool in deine Ziel - Application?

Rone
05.11.2011, 16:13
Hallo!

Mach mal bei der ersten Zeile ein = rein.

MfG
Rone

Abnormal
05.11.2011, 21:18
pony prog oder sonst was nacgdem du eh schon ein hexfile hast braucht es weder bascom noch ein studiox...

Thegon
06.11.2011, 10:43
Mach mal bei der ersten Zeile ein = rein.



Ich glaube nicht dass das nötig ist, in Bascom.

Mfg Thegon

EDIT: Oh verzeihung, da hab ich was verwechselt, ich bin jetzt auch dafür, dass ein = eingefügt wird :)

hegewald
07.11.2011, 09:32
ne, hast nichts verwechselt!
habe die .hex Datei über myAVR ProgTool ohne Probleme in das Chip gebrannt.
Die Steuersignale sind an den Motorpins über einen Skop sichtbar.
Hätte gern ein Photo eingesetzt, aber hier sehe ich keine Möglichkeit.
Grüße

Rolf

Thegon
07.11.2011, 19:58
ne, hast nichts verwechselt!
habe die .hex Datei über myAVR ProgTool ohne Probleme in das Chip gebrannt.
Die Steuersignale sind an den Motorpins über einen Skop sichtbar.
Hätte gern ein Photo eingesetzt, aber hier sehe ich keine Möglichkeit.
Grüße

Rolf

Das heißt, der AVR tut seinen Dienst?!
Und der Motor macht dann noch immer nicht, was er soll?
Dann liegt das Problem an der Hardware/Motoransteuerung?
Wird ein fertiger Motortreiber verwendet, hat dieser Schon einmal funktioniert bzw. tut er es unter Anderen Umständen wieder?
Welche Schaltung (falls kein fertiger Motortreiber) wird verwendet?
Sonst weiß ich nicht was ich sagen soll, denn wenn der µC macht, was er soll (Steuersignale ausgeben [die richtigen???]), dann wird es wohl nicht an der Programmierung liegen.
Irgentwie hab ich vermutlich das eigentliche Problem aus den Augen verloren, was stimmt denn nicht, der AVR lässt sich doch anscheinend einwandfrei flashen.

Sorry für die vielen Fragezeichen, villeicht sehe ich die Ganze sache einfach viel zu Umständlich ;-)

Mfg Thegon

hegewald
08.11.2011, 08:39
Hallo Thegon,
alles läuft hier wie am Schnürchen! Habe heute Morgen einen 18 Amp. Regler mit einem kleinen
BL-Motor an die Stiftleiste M1 (4 Motoren werden an M1 bis M2 angeschlossen) gesteckt und Lipo 3S angeschlossen.
Um das Modul scharf zu machen, muß man erst kurz den Nickknüppel nach vorn schieben bis eine SMD-LED
leuchtet. Jetzt werden die Funktionen Pitch / Roll / Nick und Gier an der Drehgeschwind. des Motors
sichtbar.
Ich will mir jetzt bei ebay nur den Ramen eines Quadrocopters kaufen und die Komponenten
von 4 St. Motoren mit Reglern separat zulegen....und dann gehts zur Sache!

Ich mache mir Gedanken, vom Bascom mit seinen Basic Abschied zu nehmen und mit Assembler
ganz neu anzufangen. Habe mit den Pics in Assembler gefummelt, aber die Befehle vom AVR sind
ganz anders. Bei Amazon gibt es ein Buch. Runter geladen habe ich das AVR Studio4, aber da reichen
meine Englischk. nicht aus.
Wüßtest Du ein einfaches Assembler-Programm?

Grüße

Rolf

Thegon
08.11.2011, 20:53
Wüßtest Du ein einfaches Assembler-Programm?


Sorry, ich kann auch kein ASM ;-)
Ab und zu hätte ich es schon brauchen können, aber mir irgentwie nie die Mühe gemacht, mich da einzuarbeiten.

Aber es gibt sicherlich genug andere, die dir auf diesem Gebiet Tipps geben können :)

Mfg Thegon

oberallgeier
08.11.2011, 22:44
... vom Bascom mit seinen Basic Abschied ... mit Assembler ... anzufangen... AVR Studio4 ... reichen
meine Englischk. nicht ...Versuchs doch mal auf dieser Seite (klick). (http://www.avr-asm-tutorial.net/avr_de/beginner/index.html) Da ist viel in Deutsch, aber Englisch ist auf Dauer einfach notwendig und unumgänglich.



... Wüßtest Du ein einfaches Assembler-Programm? ...Ich hätte da meinen Servotester. Aber ich fürchte, dass der nicht zu den einfachen Programmen zählt.

Thegon
09.11.2011, 19:27
Warum eigentlich ASM? Ich meine ich will dir keinesfalls davon abraten, ich sollte das ja auch irgentwann mal machen, aber besonders bei kompexeren Aufgaben (quadcopter), hätte man da mit einer etwas höheren Sprache (C oder so) nicht mehr freude, weil man sich nicht so um das einzelne kümmern muss.
Natürlich, bei sehr schnellen Dingen wird man nicht drum herumkommen, aber so schnell (wenige µs bearbeitung und solche dinge) muss es doch auf einem Copter dann auch nicht hergehen.
Ist jetzt aber nur eine Frage ;-)

Mfg Thegon

Besserwessi
09.11.2011, 21:35
Für die ASM Programmierung ist AVRStudio schon gut. Alternativ kann man auch GCC nehmen oder ggf. auch weiter BASCOM nutzen, und nur einiger Stellen per Inline ASM ergänzen wo man wirklich die Geschwindigkeit braucht. Im Vergleich zu C ist bei BASCOM Inline ASM relativ einfach.
Für eine Deutsche Anleitung zu ASM ggf. mal bei http://www.mikrocontroller.netschauen.

Ein so großes Programm würde ich nicht in ASM schreiben, da verliert man sehr schnell den Überblick. So viel langsamer ist C (mit GCC) meistens auch nicht.

oberallgeier
10.11.2011, 09:52
Nur der Einfachheit halber der bereinigte Assemblerlink von besserwessi (klick hier) (http://www.mikrocontroller.net/articles/AVR-Tutorial#Assembler.2C_Basic_oder_C.3F) und nix für ungut Besserwessi.

Assem bler ist vor allem beim Einstieg in die Atmelcontroller und andere natürlich sehr empfehlenswert >> wenn man richtig hardwarenahe << Lichtaufgeher erleben möchte. Mein Servocontroller in ~.asm funktioniert, aber mein späterer, in C, ist viel besser lesbar. In Assem bler ist schon ne Multiplikation zweier Zahlen ein gewisses Erlebnis und ne Wurzel werden wohl nur Hardliner ziehen wollen (und können!!). Aber Programmiersprachen werden sowieso oft unter sehr persönlichen Vorlieben beurteilt. Nüchtern gesehen: Assem bler heißt zu Fuß von Frankfurt nach Kölle gehen, Bas com ist die Bahnfahrt und C ist die Autofahrt. So ungefähr. Man kommt dabei (fast) immer an.