Hallo,
ich habe meine AVR-Controller bisher in Assemlber mit AVR-Studio
programmiert.
Nun habe ich mal Bascom getestet und war sehr begeistert. Nur leider bin
ich dann sehr schnell an die 4k grenze in der Demo von Bascom gekommen.
Was gibt es so an kostenlosen/Preisgünstigen "höheren Sprachen" als
Assembler um AVR Controller zu Programmieren?
Bascom ist ja sehr simpel und schnell zu verstehen. Ich habe in der
Hilfe einfach alle "Befehle" die es gibt alphabetisch aufgelistet mit
beschreibung und codebeispiel.
Vielen Dank für eure Hilfe!!
....Bascom ist ja sehr simpel und schnell zu verstehen....
Aber nur wenn das compilat läuft!
Bei Bascom wird soviel intern rumgewurschtelt, was der Anwender nicht
mitbekommt.
Ich nutze auch Bascom und finde es ist sein Geld wert, die Onlinehilfe
ist sehr umfassend. Komme Entwicklungstechnisch eh aus der Basic-Ecke
(VB, VBA, .NET) und fand mich daher in Bascom sehr schnell zurecht. Die
nächste "Investition" werden wohl zusätzliche Module sein. Ein paar
Macken hat Bascom allerdings schon...
Als kostenlose Alternativen gibt's wohl nur Assembler oder C mit WinAVR
und GCC.
Lukas wrote:
> Hmm, wer die Wahl hat, hat die qual...>> Gibt es denn für Gründe nicht Bascom zu nehmen und auf C um zu steigen?
Abgesehen davon, dass C Industriestandard ist, es dafür freie Compiler
gibt, man unendlich flexibler ist, als mit BASIC und die Programme noch
dazu schneller ablaufen können, nein.
Ok, ich denke es ist am besten, wenn ich mir selber ein Bild davon mache
und dann entscheide, was ich bevorzuge.
Was brauche ich denn um mal einen Test zu machen (z.B. erstmal ein
"Blink-LED-Porgramm" schreiben) und mich in die Grundlagen
einzuarbeiten?
Ich habe mal AVR-GCC runtergeladen und istalliert. Nun kann ich in
AVR-Studio ein "C-Programm" für meinen ATMega8 schreiben und
Compelieren?
Vielen Dank für eure Hilfe!
Gruß, Lukas.
Lukas wrote:
> Gibt es denn für Gründe nicht Bascom zu nehmen und auf C um zu steigen?
# Preis
BASCOM kostet Geld. Bei C gibt es sowohl kostenpflichtige als auch
kostenlose Versionen.
Der Preis für gute Tools kann sich allerdings relativieren, wenn man
seine Entwicklungszeit mitrechnet. Ein dazugekauftes Modul kann
letztlich preiswerter sein als eine Eigenentwicklung.
# Offenheit
Wie die Befehle/Module von BASCOM intern arbeiten ist entweder im Manual
dokumentiert oder nicht. Wenn nicht, kann man nicht so einfach in der
Source nachsehen, wie die Arbeitsweise ist.
Bei C (AVR GCC) ist der Einblick in die Sourcen möglich.
# Mein Fazit
Ich bin Hobbyist und rechne meine Entwicklungszeit nicht, sondern
verbuche das unter Spass und Neugier.
So gesehen machen fertige, kostenpflichtige Tools und Module keine
Punkte und closed source behindert mich.
Daher benutze ich meistens AVR GCC und die BASCOM-Demo gelegentlich bei
Themen aus dem Forum.
Tja, BASCOM hat Suchtpotential, wer einmal angefixt ist, der kommt davon
nur schwer wieder weg. Um damit effiziente Programme zu schreiben, muss
man aber BASCOM (und ASM) schon verdammt gut verstehen. Denn
Programmieren ist mehr, als nur ein paar (meist unverstandene)
vorgefertigte Bausteine zusammenzuschieben und sich dann zu wundern
warum die Hexdatei so groß und das Programm so langsam ist.
Nein, ich verteufele BASCOM nicht, kann aber gut darauf verzichten. ;-)
~
Hallo,
also ich nutze C und BASCOM gewerblich!
C nutze ich nur um Eindruck zu schinden. Bascom nutze ich um schneller
ans Ziel zu kommen. Ich finde Bascom auch sein Geld wert!
Ich habe mit Bascom schneller einen fertigen Programmcode gehabt als mit
C.
C ist natürlich Industriestandard, aber wir geben die Codes unserer
Projekte ja nicht raus. Dem Kunde ist es meistens egal mit was man
Proggt, hauptsache das Ziel wird erreicht.
Alex W. wrote:
> C ist natürlich Industriestandard, aber wir geben die Codes unserer> Projekte ja nicht raus. Dem Kunde ist es meistens egal mit was man> Proggt, hauptsache das Ziel wird erreicht.
Ist ihm das denn auch egal, wenn es sich dabei um sicherheitsrelevante
Dinge handelt? Automotive! Automation!
Ist Sicherheit gefordert, bist du mit BASCOM vermutlich GANZ schnell an
der Wand, denn da kann niemand reingucken und verifizieren.
Hallo,
hat schon mal einer daran gedacht, mit C zu arbeiten, um dann bei der
nächsten Bewerbung das mit auf die Liste seiner Fähigkeiten zu setzen ?
Insofern würde ich persönlich jede private Herausforderung was neues zu
lernen annehmen, Basic kann ich auf Arbeit benutzen.
Gruß,
Michael
Ok, vielen Dank für eure Antworten und ich denke ich werde mir C einfach
mal anschaun.
Dann kann ich erstens auf meiner Bewerbung reinschreiben "Grundlegende
Kenntisse in C" und zweitens kann ich mich dann selber entscheiden, was
ich toller finde oder gar mit beidem arbeiten.
Also an dieser Stelle schon ein mal DANKE!!
Nun stellt sich mir die Frage, wie fange ich nun an.
Am schönsten ist natürlich eine fertige IDE wo der Compiler Debugger
Editor etc. alles mit drin ist.
Was ist denn nem Anfänger wie mir am besten zu empfehlen?
- Ich arbeite mit Windows Vista (bitte keine kommentare dazu).
- Ich besitzte einen AVR-ISP mit ich aus AVR-Studio (und Ponyprog rein
theoretisch auch) auf jedenfall den ATMega8 bespielen kann.
Vielen Dank!
Lui
Lukas wrote:
> Was ist denn nem Anfänger wie mir am besten zu empfehlen?> - Ich arbeite mit Windows Vista (bitte keine kommentare dazu).> - Ich besitzte einen AVR-ISP mit ich aus AVR-Studio (und Ponyprog rein> theoretisch auch) auf jedenfall den ATMega8 bespielen kann.AVR Studio + WinAVR
Lukas wrote:
> Dann kann ich erstens auf meiner Bewerbung reinschreiben "Grundlegende> Kenntisse in C"
DAS würde ich auf keinen Fall reinschreiben.
Grundlegende Kenntnisse hat man, wenn man mal ein Buch zu C
durchgeblättert hat.
C Kenntnisse alleine locken auch keinen hinterm Ofen hervor. Wenn das da
steht muss IMHO dabeistehen, wozu das C eingesetzt wurde. Also
"Kernelprogrammierung unter Linux" oder "Programmierung von
Mikrokontrollern Typ XYZ"...
Lass den Mikrocontroller zum Einstieg erstmal weg -- da sind noch zu
viele Fehlerquellen drin.
Installier dir GCC-Packete oder installier MinGW oder sowas und fang
erstmal mit Konsolenprogrammen auf dem Computer an. Dadurch schließt du
schonmal 90% der möglichen Fehler beim Programmieren von MCU aus, und
kannst dich mehr auf C konzentrieren.
Stefan B. wrote
>C Kenntnisse alleine locken auch keinen hinterm Ofen hervor. Wenn das da>steht muss IMHO dabeistehen, wozu das C eingesetzt wurde. Also>"Kernelprogrammierung unter Linux" oder "Programmierung von>Mikrokontrollern Typ XYZ"...
Ok werde ich berücksichtigen, also eher sowas wie:
Grundlegende Kenntnisse in AVR-Programmierung in C
Andi D. wrote
>AVR Studio + WinAVR
Ok installiert habe AVR Studio und WinAVR inzwischen. Wenn ich nun ein
neues Projekt erstelle wähle ich dann einfach AVR-GCC aus?
Im AVR-GCC Tutorial von hier steht am anfang:
Vorausgesetzt werden Grundkenntnisse der Progammiersprache C. Diese
Kenntnisse kann man sich online erarbeiten, z. B. mit dem C Tutorial von
Helmut Schellong. Nicht erforderlich sind Vorkenntnisse in der
Programmierung von Mikrocontrollern, weder in Assembler noch in einer
anderen Sprache.
Gibt es sowas auch genau umgekehrt??? Grundkennttnisse in der
Programmierung von Mikrocontrollern in Assembler und einer anderen
Sprache habe ich, aber gar keine in C.
Vielen Dank!
Lui.
Lukas wrote:
> Ok installiert habe AVR Studio und WinAVR inzwischen. Wenn ich nun ein> neues Projekt erstelle wähle ich dann einfach AVR-GCC aus?
Ja, ganz genau.
Was auch sonst?
> Programmierung von Mikrocontrollern in Assembler und einer anderen> Sprache habe ich, aber gar keine in C.
Dann fang am besten, wie Sven Pauli schon sagte, damit an deine ersten
C-Programme am PC zu schreiben und zu testen. Auch dafür gibt es freie
Entwicklungsumgebungen. Du vertrödelst sonst ne Menge Zeugs, bis die
C-Grundlagen so einigermassen sitzen. Wenn du die dann hast, kannst du
ziemlich leicht auf den µC umschalten.
Am Anfang musst du dich an die C-Syntax gewöhnen, ein paar Konzepte
lernen etc. Und das geht am PC mindestens genausogut, wenn nicht besser,
als am µC. Der Grund dafür ist einfach: Du hast bessere
Debug-Möglichkeiten.
> Nun kann ich in AVR-Studio ein "C-Programm" für meinen ATMega8 schreiben> und Compelieren?
Kurz und knapp, Ja. Rest siehe AVR-Tutorial [Assembler und mehr
Hardware] und AVR-GCC-Tutorial [C und weniger Hardware].
Viele hier im Forum würden dir empfehlen mit Assembler an zu fangen,
ich meine, "C passt scho'!". ;-)
> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?
Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.
P.S.: Hast du dir schon mal die Tutorials und die Artikel hier
angeschaut, da werden schon viele deiner Fragen abgearbeitet.
http://www.mikrocontroller.net/articles/Spezial:Allpages
Lukas wrote:
> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann> was völlig anderes?
Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.
Benutz den ganz nackten GCC für Windows, der kompiliert dir schon das
Progrämmchen, das ich dir oben angehängt hab...
Sven Pauli wrote:
> Lukas wrote:>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann>> was völlig anderes?>> Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.
Die Gefahr besteht natürlich.
Aber wenn er sich immer an die simpleste Variante hält und bei jeder
Auswahl immer die nimmt, bei der 'Konsole' in irgendeiner Form vorkommt
und alle Anfragen des Wizards nach irgendwelchen Dingen, die er für den
Programmierer erledigen soll, mit 'Nein' beantwortet, dann kann er das
durchaus nehmen, wenn ers schon auf der Maschine hat :-)
guest wrote:
>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?> Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.
Es geht darum, dass er seine ersten Schritte in C auf dem PC und nicht
auf dem µC macht. Du weist schon: Basic-Syntax, Variablen, gewöhnen an
Datentypen, erste Schleifen, erste Funktionen und so'n Zeugs.
Wenn jemand daran interessiert ist, ich habe einen Basic->C Translator,
der das Basic vom Pic übersetzen kann, sowie einige Erweiterungen.
Ist recht flexiebel. Wenn jemand bereit ist, daran Hand anzulegen,
stelle ich die Bins sowie Support gerne zur Verfügung. Source leider
nicht.
Ev. gibt es genug basic->C translatoren auf Unix, welche ev. auch
funktionieren.
Ist eher witzlos, da der grosse Vorteil von BASCOM (welcher gleichzeitig
auch sein Nachteil sein kann) darin besteht, dass es die Hardware soweit
abstrahiert, dass ihm beispielsweise nur noch mitteilst, dass du ein LCD
an diesen und jenen Pins hast und BASCOM kümmert sich um den Rest.
Selbiges für Servos und was weiß ich noch alles.
D.h. BASCOM lebt und stirbt damit, dass es eine Menge Peripherie von
Haus aus kennt, ohne dass du gross was machen musst.
Ja, das macht der Pic Basic compiler auch. Deshalb, es braucht ein paar
Libs in C, damit das Basic problemlos compiliert wird.
Denke, viel ist schon in den Procyon AVRlib enthalten, also bräuchte es
wirklich nicht viel Arbeit, um das Anzupassen.
>>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?>> Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.> Es geht darum, dass er seine ersten Schritte in C auf dem PC und nicht> auf dem µC macht.>Das hätte ich da so jetzt nicht rausgelesen... Naja, er muss das draus
machen was er will... ;-)
> Du weist schon: Basic-Syntax, Variablen, gewöhnen an Datentypen, erste> Schleifen, erste Funktionen und so'n Zeugs.
Ne, zumindest Basic-Syntax ging an mir vorüber. ;-)
Sven Pauli wrote:
> Lukas wrote:>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann>> was völlig anderes?>> Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.> Benutz den ganz nackten GCC für Windows, der kompiliert dir schon das> Progrämmchen, das ich dir oben angehängt hab...
Hallo,
aus eigener Erfahrung muss ich leider feststellen, daß Visual C++ wenig
mit Standard C++ wie es unter Gnu läuft zu tun hat.
Mit andern Worten, wenn Microsoft einen Standard erstmal in die Finger
bekommt, dann wars das.
Wollte nur mal so meine Applikation nach VC++ portieren, aber selbst die
Headerfiles hätte ich komplett umschreiben müssen.
Aber mal im Ernst: AVR-Studio ist eigentlich brauchbar, vor allem weil
man die Ausführung mit dem Simulator auch gleich austesten kann.
D.h. wenn die LEDs nicht so blinken wie sie sollen, dann läßt sich das
nachvollziehen.
am Anfang sind die logischen Operatoren in C tödlich, der Gebrauch von &
und && sowie || und | verwirtt, aber man kann das lernen.
Gruß,
Michael
Michael Appelt wrote:
> [...], aber man kann das lernen.
Gutes Stichwort... gibts hier brauchbare Literatur die einen C-Neuling,
aber erfahrenen Programmierer nicht zu tode langweilt? Ich hab mich
schon ein paarmal rangesetzt und wollte C (und auch C++) lernen, aber
nach 3 Lektionen isses mir zu dumm und ich schmeiss es wieder in die
Ecke.
Mich interessiert hier Lern-Literatur für C generell und im speziellen
natürlich für C auf den AVRs.