C++ ist für Mikrokontroller eher weniger geeignet. Da wird mit den heutigen Compilern noch deutlich mehr an RAM und Flash speicher geraucht als in C. Gerade ein Mega8 sollte dann zu klein sein. Mit einem Mega128 vielleicht.
ich hab dazu ne gute seite im internet gefunden die das ganze einfach erklärt
jetzt möchte ich den atmega8 mit c++ programmieren. dazu find ich aber keine seite in der sowas von klein an drin steht.
deshalb hab ich da n paar fragen
1. kann ich das make-file vom asuro verwenden.
2. was muss ich am anfang eines programmes schreiben. bei asuro steht ja immer #include "asuro.h"
3. kann ich mein spi-kabel vom bascomprogrammieren verwenden wenn ich mit avr-studio arbeite
4. gibts iregendeine seite im internet die das von klein an beschreibt. vieleicht mit kleinen programmen zum testen
[-o<
danke schon mal
mfg
C++ ist für Mikrokontroller eher weniger geeignet. Da wird mit den heutigen Compilern noch deutlich mehr an RAM und Flash speicher geraucht als in C. Gerade ein Mega8 sollte dann zu klein sein. Mit einem Mega128 vielleicht.
da hab ich aber im internet eher andere meinungen gehört.
aber ist ja egal.
weiss jemand wo ich so etwas lernen kann.
Hallo,
für die avr's wie den Atmega8 möchtest du C lernen.
Schau dir dieses Tutorial an.
Wobei es um die Programmierung eines Controllers geht und nicht speziell um C.
Gruß
Jens
@rocketman123
Was genau möchtest Du lernen? C++ allgemein, C++ bezogen auf die AVRs oder was ins makefile reinkommt? Letzteres ist einfach, unter CPPSRC alle Sources eintragen und das wars.
So allgemein gesagt ist das absoluter Quatsch. C++ __KANN__ langsam und speicherfressend sein, wenn man es falsch anwendet, da sind reines C und vor allem Bascom aber auch nicht anders. Wenn man jedoch einigermaßen weis was man tut, hat es sehr viele Vorteile.C++ ist für Mikrokontroller eher weniger geeignet. Da wird mit den heutigen Compilern noch deutlich mehr an RAM und Flash speicher geraucht als in C. Gerade ein Mega8 sollte dann zu klein sein. Mit einem Mega128 vielleicht.
MfG Mark
Hallo rocketman123,
C++ für den mega8. Dann schau dir mal Arduino an. Es gibt jede Menge Tutorials und Anwendungsbeispiele darüber. Moderne Boards verwenden zwar den mega168, aber der mega8 wird weiterhin voll unterstützt. Ein Arduino Board kann man sich auch recht einfach auf Lochraster oder Steckbrett selbst aufbauen, oder auf eine bestehende Hardware anpassen.
Ich arbeite selbst zur Zeit an der Asurino Lib, einer Klassenbibliothek für den Asuro, basierend auf Arduino.
kann man denn überhaupt hexfiles mit nem c++ fähigen compiler machen ?? dann bitte verratet mir WIE ich hasse es mit bitschiebereien und defines arbeiten zu müssen, am liebsten hätte ich alles schön sauber über punkktnotation ähnlich bascom
c++ verdient den namen eigentlich erst, wenn es die STL enthält. eine derart umfassende c++ implementierung dürfte den atmega8 doch überfordern.
klassen und vererbung benötigen schon einges an speicherplatz (RAM) damit es sinn macht.
oop ist vom konzept her etwas sehr dynamisches. deshalb werden eben viele informationen im RAM (bei µC eher mangelware) abgelegt. natürlich kann ich nen c++ compiler nehmen und so programmieren, das auch alles ins flash geht. nur wird das dann eher wenig mit c++ und oop zu tun haben.
natürlich enthält c++ auch ne menge vorteile (hier und da verbesserte syntaktische möglichkeiten) gegenüber c die keinen erhöhten speicherbedarf bedingen. aber als richtiges c++ würd ich das dann nicht bezeichnen. eher als ein aufgemotztes caber das kann ja auch schon ein vorteil gegenüber normalem c sein.
das arduino board wird mit einer sprache programmiert, die auf c/c++ basiert. aber von c++ ist da kaum was drin. eigentlich ists eher reines c.
na gut ... formulier ich meinen ansatz anders ... mir ging es dabei echt nur um die datenkapselung also OOP ohne veerbung etc. einfach nur das ich ports als Port.A.Pin1 = AN schreiben kann um mal was ganz triviales zu bringen ... kann sein das ich aufm schlauch steh was diw umsetzung in reinem C angeht, dann helft mir mal mitm schlag aufn hinterkopf aus bitte
MfG
Hallo,
ich verstehe nicht so ganz, was Du möchtest.
Du möchtest C programmieren, dann gehe ich davon aus, daß Du auch C kannst.
Wenn das der Fall ist, weißt Du sicher auch, daß Punkt . in C für ganz andere Zwecke gedacht ist, als das was Du möchtest.
In C gibt es halt nur die Möglichkeit mit Bitschiebereien an die einzelnen Bits dranzukommen.
Es gibt da auch die Möglichkeit Makros zu definieren, um sich das ganze "leichter" zu machen.
Schau Dir mal deprecated.h , die Bibliothek ist immer noch bei avrgcc drin.
Da gibt es so Sachen, wie
sbi(port, bit)
cbi(port, bit)
outb(port, val)
vielleicht ist das eine Anregung.
Sonst mußt Du halt zu einer anderen Sprache greifen, wo sowas schon drin ist z.B. Basic
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Lesezeichen