www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anforderungen an Mikroprozessor aufstellen


Autor: C. S. (syntec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,

für ein einmaliges Projekt möchte ich eine Regelung auf einen 
Mikrocontroller implentieren. Als erstes möchte ich nun die 
Anforderungen an den Mikroprozessor aufstellen bevor ich dann ein 
geeignetes Entwicklungsboard suche.
Da ich in C programmieren möchte und es vor allem zum AVR recht viele 
Hilfen gibt, möchte ich diesen auch verwenden.
Für mich stellt sich nun die Frage, wie groß der Programmspeicher sowie 
die Rechnergröße sein müssen.
Mein kompilierter C-Code, der noch nicht ganz fertig ist, ist mit dem 
Bibliothelen etwa 100 kB groß. Kann man den Speicherbedarf einfach 1:1 
auf den Programmspeicher übertragen oder sollte man da sicherheitshabler 
etwas überdimesnionieren?
Da mit 8 Bit nur Zahlen bis 255 verarbeitet werden können, ich aber ein 
etwas größeren Zahlenbereich brauche muss ich auf einen 16 Bit Prozessor 
zugreifen oder doch eher gleich einen 32 Bit?
Spielt es bei einen 32 Bit Rechner dann nbei einen solchen kleineren 
Projekt noch eine Rolle, ob man mit Festkomma- oder Gleitkommaarithmetik 
arbeiten will?

Ich würde mich freuen, wenn ihr mir ein paar Ratschläge und Hilfen geben 
könntet, da ich noch relativ neu auf diesen Gebiet bin.

Autor: spess63 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Mein kompilierter C-Code, der noch nicht ganz fertig ist, ist mit dem
>Bibliothelen etwa 100 kB groß.

Auf welcher Plattform?

>Da mit 8 Bit nur Zahlen bis 255 verarbeitet werden können, ich aber ein
>etwas größeren Zahlenbereich brauche muss ich auf einen 16 Bit Prozessor
>zugreifen oder doch eher gleich einen 32 Bit?

Ich habe auf einem AVR schon 64-Bit-Zahlen benutzt.

MfG Spess

Autor: Tropenhitze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sag doch einfach, was Du machen willst.
Es soll 8Bit µCs geben, mit denen sich sogar 16Bit berechnen lassen und 
auch Fließkomma. Da staunst Du, nicht wahr?

Autor: Michael S. (ebay_junky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Codegröße: Wenn Dein Code als Binärfile vorliegt, hast du wirklich 100k 
Code, wenn es z.B. ein Hex-File ist, sinds weniger als 50k.

16-Bit Zahlen auf 8-Bit Prozessoren: kein Problem. Das 8-Bit bezieht 
sich nur auf die Registerbreite - Du kannst auch locker 16-Bit, 32-Bit 
oder größere Zahlen verwenden, ist dann nur eine Sache der 
Geschwindigkeit...

Autor: 9xklug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie haben die damals auf nem C64 nur diese Flieskommaberechnungen 
hinbekommen. Und überhaupt, wie kann es sein, dass eine 8-Bit CPU weiter 
wie bis 255 zählen kannn...

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Samplerate & Algorithmus ? Anzahl Sensoren ? Ein Steuerglied.

Autor: Michael S. (ebay_junky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du benutzt mehrere Register, um deine Zahl zu verwursten --> 2 Register 
= 16 Bit...

Autor: C. S. (syntec)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die raschen Antworten.
Na wie gesagt, bin ich noch Neuling und habe mir den Artikel 
http://www.mikrocontroller.net/articles/Mikrocontroller durchgelesen, 
auf den ich auf die 255 gestoßen bin.

@Michael S: es ist ein hex-file. Also kann man die "reale" Größe dann 
letztendlich auf den Speicher nur abschätzen?!

Habe eine PID und Fuzzy Regelung zwischen denen gewählt werden kann. PID 
arbeitet mit 2 Sensoren und einem Stellglied und der Fuzzy nur mit einem 
Wegsensor und einem Stellglied.
Die Werte sollten schon im Mikrobereich verarbeitet werden.
Samplerate würde ich jetzt erstmal 20 kHz sagen.
Würden da 8 Bit noch reichen?

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
9xklug schrieb:
> Wie haben die damals auf nem C64 nur diese Flieskommaberechnungen
> hinbekommen. Und überhaupt, wie kann es sein, dass eine 8-Bit CPU weiter
> wie bis 255 zählen kannn...

Wie kann es sein, daß man weilter als 5 zählen kann... bei nur 5 Finger 
an einer Hand?

Autor: 9xklug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh das geht schon. Manche Völker benutzen die Fingergelenke zum zählen 
und kommen so an einer Hand bis 12. Zusammen mit der anderen Hand können 
die dann bis 144 (12^2) zählen. Eigentlich ne feine Sache ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C. S. schrieb:

> Habe eine PID und Fuzzy Regelung zwischen denen gewählt werden kann. PID
> arbeitet mit 2 Sensoren und einem Stellglied und der Fuzzy nur mit einem
> Wegsensor und einem Stellglied.

Und dafür brauchst du 100kB?
DAs kann und will ich nicht glauben

Die 100kB, wo hast du die her?

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
9xklug schrieb:
> Und überhaupt, wie kann es sein, dass eine 8-Bit CPU weiter
> wie bis 255 zählen kannn...

> Manche Völker benutzen die Fingergelenke zum zählen und kommen so an einer
> Hand bis 12.
> Zusammen mit der anderen Hand können die dann bis 144 (12^2) zählen.

2^12

Wenn man keine Ahnung hat...

Autor: 9xklug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, die benutzen die eine Hand und berühren dabei die Fingergelenke 
der anderen Hand. Zählen als bis 12. Dann benutzen sie das nächste 
Gelenk der einen Hand und gehen damit die zwölf Gelenke der anderen 
wieder durch. Das ganze wiederholt sich dann, biss alle Gelenke der 
einen Hand 12 mal abgetastet wurden, als 12x12=144. Solltest dich halt 
mal über andere Völker informieren...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C. S. schrieb:
> Mein kompilierter C-Code, der noch nicht ganz fertig ist, ist mit dem
> Bibliothelen etwa 100 kB groß.

Auf welcher CPU, mit welchem Compiler?
Hast Du mal Optimierungen eingeschaltet?
Kannst Du den Code mal zeigen (als Anhang)?

100kB sind für nen MC schon wahre Monsterprogramme.
Die meisten MC-Programme sind 1..10kB groß.


Peter

Autor: U.R. Schmitt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
9xklug schrieb:
> 12x12=144

Alexander Schmidt schrieb:
> 2^12

Ihr habt beide nicht recht, wenn dann 0 - 12^2 - 1 = 0 - 143
(Duck und weg)

Autor: Michael S. (ebay_junky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C. S. schrieb:
> Also kann man die "reale" Größe dann
> letztendlich auf den Speicher nur abschätzen?!

Nein - manche Compiler(-Toolchains) sagen es Dir direkt. Ansonsten muss 
man sich das MAP-File vom Linker/Locater mal anschauen. Da siehst Du 
dann auch, was Du an RAM verbrauchst - mit dem RAM auszukommen ist bei 
einigen µC wesentlich kniffliger, als der vorhandene Programmspeicher.

Autor: \0 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An alle Fingerzähler:
zehn Finger, "eingeklappt" oder "ausgeklappt"
2^10 = 1024 verschiedene Zustände

Also ich komm mit 10 Fingern bis 1023 (und hört bitte auf euch mit 144 
rumzukloppen).
\0

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> @Michael S: es ist ein hex-file. Also kann man die "reale" Größe
> dann letztendlich auf den Speicher nur abschätzen?!

Noe, man koennte das HEX File mit dem Editor oeffnen und dann genau 
ablesen wieviel Byte es wohin legen will. Man koennte aber auch schauen 
was der Linker einem sagt wie gross das eigene Project denn so ist. 
Entweder sagen die es einem direct nach dem compilieren von selber, oder 
man kann die veranlassen einem ein mapfile zu erzeugen wo man genau 
ablesen kann wie gross alles ist.

Das einzige was man da nicht ablesen kann ist zur Laufzeit angeforderter 
Speicher. Also z.B die groesse der benoetigten Stacks.

> Habe eine PID und Fuzzy Regelung zwischen denen gewählt werden kann.

Solche Regelungen lassen sich sicherlich im bereich einstelliger kbytes 
realisieren.

> Die Werte sollten schon im Mikrobereich verarbeitet werden.
> Samplerate würde ich jetzt erstmal 20 kHz sagen.
> Würden da 8 Bit noch reichen?

Das wird vielleicht noch gehen, aber es wird grenzwertig. Da deine 
Stueckzahl 1 ist, sind auch die Kosten der Controllers unerheblich.
Du musst unter Umstaenden geringere Performance durch bei dir nicht 
vorhandene Erfahrung ausgleichen.

Ich sage nicht das du den nehmen sollst, aber nur mal als Beispiel:
Ich setze hier den R32C116 ein. Das ist ein 32Bit Controller mit 
Fliesskommaeinheit, 20kRam, 256kFlash und der kostet deutlich unter 
10Euro.
Da wuerde ich nicht den geringsten Gedanken mehr an einen abgehalfterten 
8Bit Prozessor verschwenden! Nimm mindestens einen 16Bit Prozessor und 
achte darauf das die Entwicklungsumgebung brauchbar ist!

Und noch was, die Programmierung eines Reglers ist eigentlich total 
einfach. Schwierig ist die Parametrierung. Und da wirst du ein bisschen 
Reserve im Controller fuer Testausgaben sehr bald zu schaetzen wissen. 
Und es ist auch sehr nett wenn Interruptfunktionen in einem Zugriff auf 
16Byte Werte zugreifen und man nicht jedesmal bei der Datenuebergabe den 
IRQ sperren muss.

Wenn man natuerlich fuer Apple arbeitet und 1Million ipads herstellt so 
nimmt man den billigsten 8Bit Prozessor den man bekommt und reisst sich 
bei der Implementierung den Arsch auf. Aber bei kleinen Stueckzahlen wo 
die Kosten fast zu 100% durch die Entwicklung bestimmt werden nimmt man 
irgendwas dickes, idealerweise natuerlich einen Typen den man schon 
kennt.

Olaf

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich vermute, dass der TE ganz einfach die Größe eines kompiliertes 
Windows oder Linuxbinary genommen hat (wenn icht gar die Größe des 
Source-Codes)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.