Forum: Mikrocontroller und Digitale Elektronik RAM größe und Unterschied Bascom zu C(++)


von Richard B. (fremder0815)


Lesenswert?

Servus zusammen,

bitte nicht böse sein, dass ich mal ganz "doof" frage:
>>> FRAGE 1:-)
WARUM kann man nicht einfach die "PC-RAM-Bausteine" DIMM/SIMMS oder wie 
sie heissen/geheissen haben - bei den Microcontrollern NUTZEN ?

gibts da ne logik ?

oder sowas wie eine "Karte" wo ich ~einfach~ ein paar dimm-module 
reinhaue und dann z.B. 1 GB RAM z.B. zum addressieren von Arrays oder so 
hätte ?

oder anders gefragt:

WAS würde denn z.B. 1 GB (oder meinetwegen 10 MB) RAM (?SRAM) kosten ?
- > um diesen z.B. für Arrays etc. zu nutzen...


>>> FRAGE 2:-)

WARUM sind BASCOM-(programmierte)MCs  langsamer als selbige in C(++)
(Assembler lass ich mir ja noch eingehen > näher am mc oder so)
ich habe dazu in dem mc-wiki irgendwo ne gegenüberstellung gelesen und 
da
war der unterschied ja fast bei ca. faktor 5 oder so ähnlich:()
(die frage zielt darauf ab, ob ich mir die MÜHE machen soll/muss auf C
umzusatteln oder nicht:-)


danke für ne info

ritsch

von Tilo (Gast)


Lesenswert?

Schau mal bei Wikipedia nach, was der unterschied zwsichen dynamischen 
Ram und statischem Ram ist. Dann weißt du auch, warum due meisten MCUs 
nicht mit DRam können.

von Karl H. (kbuchegg)


Lesenswert?

Zudem ist es ja auch so, dass der µC dann aber auch ein externes 
Speicherinterface mit entsprechend vielen Adressleitungen benötigt. 
Viele Adressleitungen bedeutet dann aber auch wieder andere 
Assemblerbefehle, denn die Adressleitungen müssen ja Leben eingehaucht 
bekommen. Dann muss unter Umständen die interne Rgeister-Struktur 
geändert/aufgeblasen werden. etc. etc.
Das zieht einen ganzen Rattenschwanz an Änderungen nach sich.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Antwort 1:
Es ist durchaus möglich SDRAM zu nutzen.
Du musst dich nur durch die Ansteuerung kämpfen.
Das will und macht niemand.
Mikrocontroller haben den Grund im Namen!

Antwort 2:
Bascom ist eine proprietäre Sprache und wird noch nicht so lange 
entwickelt wie C++.
C++ ist Standard und die Algorithmen, die von C++ in Assembler 
übersetzen sind sehr ausgereift.
Auch kann man in C ganz andere Sprachkonstrukte nutzen.
Nachteil ist, dass es weniger vorgefertigte Sprachkonstrukte gibt.
Vorteil ist, dass man sein System versteht und bei Problemen nicht ganz 
auf dem Schlauch steht.
Bascom mag zum Programmieren lernen gut sein,
C++ zum ernsthaften Programmieren!

Zum Thema was 1GB Ram kostet:
Du brauchst Static-Ram für DMA.
Also ists ziemlich teuer.
1 Megabyte kann gut 10€ kosten.
Also 10000€.
Lieber effizient programmieren...

Mit freundlichen Grüßen,
Valentin Buck

von Karl H. (kbuchegg)


Lesenswert?

> WARUM sind BASCOM-(programmierte)MCs  langsamer als selbige in C(++)

Das ist alles eine Frage dessen, wie gut der Compiler den Source-Code 
auf Assembler Ebene umsetzt.

Einfache Compiler benutzen dazu so etwas wie ein Baukastensystem.
Banal gesagt: Ein

FOR I = a TO B

  ....

NEXT I

ist für den COmpiler nichts anderes als die Aufforderung, den fertigen 
Assembler Baustein für FOR-Schleifen in den Assembler Code einzusetzen. 
Lediglich die Variablennamen sind noch variabel.

Gute C oder C++ Compiler hingegen, versuchen erst mal auf der internen 
Zwischenebene durch Umstrukturieren des Zwischencodes aus diesen 
Bausteinen besseren Code zu erzeugen.

Das ist ein bischen so, wie beim Lego bauen.
Du hast fertige Bausteine, fertige Achsen und fertige Zahnräder. 
Brauchst du eine bestimmte Übersetzung, dann kann man das gewünschte 
Verhältnis oftmals mit nur 2 Zahnrädern nicht genau erreichen, weil es 
der Baukasten einfach nicht hergibt. Und dann muss man kompliziert 
mehrere Stufen hintereinander schalten, bis man Annähernd beim 
gewünschten Ergebnis ist.
Kann man hingegen die Zahnräder bzw. überhaupt die komplette Mechanik 
für den jeweiligen Fall massgeschneidert fertigen, dann ist das 
überhaupt kein Problem.

von Richard B. (fremder0815)


Lesenswert?

Beitrag "Unterschied SDRAM und SRAM"

und hiermit ist es ja fast eindeutig gut zu verstehen:

======= zitat: Autor: Jörn Paschedag (jonnyp)
Es ist ja richtig, das dynamisches RAM refreshed werden muss. Aber
warum?
Vielleicht sollte man hier mal erklären, das statishes RAM aus einem
Fip-Flop besteht, welches entweder in dem einen (0) oder anderm (1)
Zustand verbleiben kann. Bei dynamischen RAM´s handelt es sich um einen
sehr kleinen Kondensator, der entweder entladen (0) oder geladen (1)
ist. Da Kondensatoren leider die schlechte Eigenschaft haben die Ladung
auszugleichen, muss die Information wieder auf Vordermann gebracht
(refreshed) werden, bevor sie verloren ist, entweder voll entladen oder
voll laden. Statische RAM´s brauchen mehr Transistoren, also mehr Platz
für eine Speicherzelle, dafür ist die Ansteuerung leichter.

habe gerade den geschmökert und klar ist mir die sache ja schon 
irgendwie ...
= ende :-)

angenommen ich möchte gewisse "dinge" als LERNEN abLegen, am PC mach ich 
halt n dickes ARRAY bzw. ein Dictionary(of Long, Integer) etc. und kann
dann schnell auf verzweigungen etc. zugreiffen OHNE diese ein 2weites 
mal
zu errechnen ...

und wenn ich nun ein ARRAY(100000 to 999999) brauche brauche ich ja auch
~ 899 KByte

und was ich so gesehen habe ist man ja bereits mit 512 KB-RAM ein 
PORSCHE
aus PC-sicht nicht mal n fiatuno :(

was muss man nun machen um auf "grosse" Arrays zugreifen zu können 
wirklichDoofgefragt :-)

von Richard B. (fremder0815)


Lesenswert?

Karl heinz Buchegger schrieb:
> Das ist alles eine Frage dessen, wie gut der Compiler den Source-Code
> auf Assembler Ebene umsetzt.

jo - danke ! hab ich mir ja fast gedacht >

Basic auf PC war ja auch (ist es ja immer noch g) jaaahrelang verpöhnt

jetzt mit Visual Studio(Basic) ist der Unterschied zumindest zw. C## und 
VB null und nix mehr !

andererseits habe ich mir einige "Beispiele" angeschaut und muss immer 
noch feststellen, dass die B(asic)ascom- (oftmals) viel schneller zu 
programmieren ist ... na ja egal .. die werden auch mal besser
bzw. kommt ja irgendwann des Visual MicroStudio (für C gibts es ja) auf 
mal für Basic.......

von Karl H. (kbuchegg)


Lesenswert?

Valentin Buck schrieb:

> Bascom ist eine proprietäre Sprache und wird noch nicht so lange
> entwickelt wie C++.

Wobei sich MCS (der Hersteller von BASCOM) meiner Meinung auch durch die 
laxe Syntaxdefinition bzw. Prüfung selber ein Bein gestellt hat. Was in 
BASCOM alles durch den Compiler geht, das grenzt schon so manches mal an 
grobe Fahrlässigkeit

Das jetzt zu ändern ist schwer. Nicht weil es technisch schwierig wäre, 
sondern weil dann die Kunden heulen.

Aber: Es verhindert so manche Optimierung. Wobei man eines sagen muss: 
BASCOM macht in meinen Augen keinen so schlechten Job.

von Karl H. (kbuchegg)


Lesenswert?

Richard Bauer schrieb:

> was muss man nun machen um auf "grosse" Arrays zugreifen zu können
> wirklichDoofgefragt :-)

Und die simple Antwort ist
* den kleinen grauen Zellen zwischen den Ohren den AUftrag geben, sich
  was einfallen zu lassen
* sich zu überlegen, ob man nicht den falschen Prozessor für die
  falsche Aufgabe benutzt.

von Karl H. (kbuchegg)


Lesenswert?

In meinen Augen machst du im kompletten Thread einen Kardinalfehler.

Du versuchst PC und µC miteinander zu vergleichen.
Sind ja schliesslich beides Computer.


Schon richtig: Aber auch ein Ford Transit ist ein Auto, genauso wie ein 
Opel Manta.
Und trotzdem sind sie nicht zu vergleichen. Jeder hat seinen Bereich, in 
dem er gut ist und Bereiche in denen er nichts taugt.

von Richard B. (fremder0815)


Lesenswert?

Karl heinz Buchegger schrieb:
> Und die simple Antwort ist
> * den kleinen grauen Zellen zwischen den Ohren den AUftrag geben, sich
>   was einfallen zu lassen
> * sich zu überlegen, ob man nicht den falschen Prozessor für die
>   falsche Aufgabe benutzt.

ooooh nein - du schiebst mich jetzt in die kategorie:

      :  nicht denken - einfach mehr speicher/geschwindigkeit kaufen

nein so meinte ich es nicht:

==== ich bin totaler MC-neuling (nicht auf pc-ebene)
==== und habe (so denke ich) viel zu viel respekt davor (gehabt)
==== und kann nur zwischen PC und meinen rumprogrammiererei vergleichen
==== deshalb fallen mir somanche fachwörter noch etwas schwer:

wie kann man VIELE datenmengen mit MCs abfragen und was kostet denn
z.B. 10 MB(RAM/SRAM oder LOCHKARTE) ?

oder was ist da so falsch an der "denkweise" klar könnte ich ja
gleich nen PC per Seriell dranhängen aber das wollte ich ja nicht :-)

von Floh (Gast)


Lesenswert?

Richard Bauer schrieb:
> wie kann man VIELE datenmengen mit MCs abfragen und was kostet denn
> z.B. 10 MB(RAM/SRAM oder LOCHKARTE) ?

Definiere VIELE.

von Lukas K. (carrotindustries)


Lesenswert?

Richard Bauer schrieb:
> wie kann man VIELE datenmengen mit MCs abfragen und was kostet denn
> z.B. 10 MB(RAM/SRAM oder LOCHKARTE) ?
Wofür brauchst du 10MB RAM? Viel RAM brauchst du bestenfalls für 
Audiorekorder (z.B. der von travelrec) oder Internetradio. Das sind dann 
aber auch nur einige wenige 10kB. Große Datenmengen werden auf SD-Karten 
u.ä. abgelegt.

von Richard B. (fremder0815)


Lesenswert?

erstmal wirklich vielen dank an ALLE und

richtig vergleichen ist der falsche weg - war / zum eigenen verständnis 
...
===============

Luk4s K. schrieb:
> Richard Bauer schrieb:
>> wie kann man VIELE datenmengen mit MCs abfragen und was kostet denn
>> z.B. 10 MB(RAM/SRAM oder LOCHKARTE) ?
> Wofür brauchst du 10MB RAM? Viel RAM brauchst du bestenfalls für
> Audiorekorder (z.B. der von travelrec) oder Internetradio. Das sind dann
> aber auch nur einige wenige 10kB. Große Datenmengen werden auf SD-Karten
> u.ä. abgelegt.

- SD-Karten ist doch schon was :-)

muss jetzt leider heimdüsen - und schaue abends wieder rein und
werde mal schauen, wie die ZUGRIFFSZEITEN da sind (zu lange wäre ja
wieder s gleiche als obs der MC-stets neu berechnen muss)

A = 10
B = 10
C = 5
' als Beispiel nur so dahingerechnet
Erg = 10 x 10 + (10 x 10 * 10) = 50.000
' Erg = A x B + (A x B x 10)
die zeit hierfür zu rechnen ist doch einiges mehr
als den WERT in ein Register zu schieben


DIM myARR(99999) as Long
Dim Erg as INT
Dim Suche as LONG = A$B$C
=====
irgendwo kommen diese werte/zustände her
A = 10
B = 10
C = 5
=======

'Erg = myARR(10105)
Erg = myARR(Suche)
'ERG wäre nun auch 50.000

schneller ist dies auf jeden fall (sofern der Zugriff auf SD(ram) nicht 
lahm ist

sorry muss loooooos :-)

danke euch

von Karl H. (kbuchegg)


Lesenswert?

Richard Bauer schrieb:
> Karl heinz Buchegger schrieb:
>> Und die simple Antwort ist
>> * den kleinen grauen Zellen zwischen den Ohren den AUftrag geben, sich
>>   was einfallen zu lassen
>> * sich zu überlegen, ob man nicht den falschen Prozessor für die
>>   falsche Aufgabe benutzt.
>
> ooooh nein - du schiebst mich jetzt in die kategorie:
>
>       :  nicht denken - einfach mehr speicher/geschwindigkeit kaufen^

Das war nicht die Absicht.

Die Absicht war:
Wenn du den Speicher nicht hast, dann hast du ihn nicht.
Es gibt da aber kein Patentrezept dafür. Jeder Fall ist anders und muss 
neu aufgerollt werden.

Und dann gibt es natürlich noch den Fall zu bedenken, dass die µC, um 
die es hier im Forum hauptsächlich geht, ganz einfach nicht für den Fall 
gebaut sind, wenn es darmu geht große Datenmengen zwischenzuspeichern. 
Deren Domäne ist eine andere. Da geht es um Motoren die angesteuert 
werden sollen, da geht es um Taster und LED, vielleicht auch mal eine 
LED-Matrix oder so.
Aber sicher nicht darum, dass der µC sich Daten im Bereich von ein paar 
MB vorhalten muss. Und zwar so, dass er schnell zugreifen kann. MB geht 
schon, zb mit SD Karten. Wenn deren Zugriffsgeschwindigkeit aber nicht 
reicht, dann benutzt man einfach das falsche Werkzeug für den falschen 
Job.

von Karl H. (kbuchegg)


Lesenswert?

Richard Bauer schrieb:

> A = 10
> B = 10
> C = 5
> ' als Beispiel nur so dahingerechnet
> Erg = 10 x 10 + (10 x 10 * 10) = 50.000
> ' Erg = A x B + (A x B x 10)
> die zeit hierfür zu rechnen ist doch einiges mehr
> als den WERT in ein Register zu schieben

Tja. Wenn du den Speicher aber nicht hast, dann hast du ihn nicht. Da 
kannst du noch so sehr mit dem Fuss aufstampfen :-)

Das Problem:
Das sind konstruierte Beispiele. Du malst hier den Teufel an die Wand wo 
du in der Realität weder Teufel noch Wand hast.

von Floh (Gast)


Lesenswert?

Richard Bauer schrieb:
> Erg = 10 x 10 + (10 x 10 * 10) = 50.000

also ich komm auf 1100.
Der uC rechnet sicherlich schneller als du, wahrscheinlich sogar richtig 
;-)

von Richard B. (fremder0815)


Lesenswert?

Floh schrieb:
>> Erg = 10 x 10 + (10 x 10 * 10) = 50.000
>
> also ich komm auf 1100.
> Der uC rechnet sicherlich schneller als du, wahrscheinlich sogar richtig
> ;-)
hüst :-)
>> Erg = 10  10  (10  10  5) = 50.000
alles x und +  = * :-) sorry, und die letzte 10 war ja C, also 5
oh peinlich sowas auch noch nüchtern von mir abzugeben hüst
===


>> Das sind konstruierte Beispiele. Du malst hier den Teufel an die Wand wo
>  du in der Realität weder Teufel noch Wand hast.

==  ich hab noch keinen MC .. der Robotorhardware-shop hat noch ZU :-)
==  ergo muss ich halt a bisserl arg theoretisieren

aber was macht man nun, wenn z.B. bei BILDerkennung viel Speicher > 
benötigt wird ? immer nen PC dranhängen ?

640 x 480 Pixel und schon sinds mal 307200, dann noch grauwerte etc.etc.

also aufs TESTEN und ausprobieren freue ich mich wie n kleines kind an 
weihnachten ggg :-)

von Stephan W. (sir_wedeck)


Lesenswert?

Hi
schau dir mal dies an:
http://cmucam.org/

Dort wird ein ARM7 mit einem "Großen" Speicher für die Bilddaten 
verwendet.
Diese Baugruppe kann schon einige Funktionen selber ausführen, aber im 
Grunde stellt Sie dir auch nur das Kamerabild und eine API zur 
Verfügung.

Vielleicht solltest du dein Arbeit auch aufteilen, den ein AVR ist für 
die Bildverarbeitung nicht wirklich geeignet.

Stephan

von Floh (Gast)


Lesenswert?

Richard Bauer schrieb:
> ==  ich hab noch keinen MC .. der Robotorhardware-shop hat noch ZU :-)

Dann fang trotzdem klein an. Verhinder erst mal, dass das Ding überall 
dagegen fährt (ich geh mal von einen fahrenden Roboter mit einfachen 
Sensoren aus).
Irgendwann einmal kannst du dich dann mit Bilderkennung beschäftigen.
:-)

von Richard B. (fremder0815)


Lesenswert?

danke - der tadel hat wirklich sein gutes :-)

und klein fang ich (mehr oder weniger) eh an ... verbruzelt is schnell 
mal was...

eigentlich muss ich mich ja zügeln, da ich zweigeteilt hier "rangehe"

1 x wegen meiner arbeit (cnc-maschinen, relativ alt > ergo alte 
steuerung)
>>> hier darf nix nirgens hinDresschen ~würg~
>>> also mit "kleinenServos" testen und dann hardwaremässig tauschen...

1 x wegen "spielereien", da gehört dann des roboterzeugs und so
manche computerProgrammierSpielerei hin

====
CMUcam3 ist schon ne schöne sache, so "ähnlich" kenn ichs aus der 
openSourcewelt auch.

PS: MicroSaft hat heute bekanntgegeben, mit AMR zu schmusen :-)

PPS: 1 MB = ca. 10 EURo - wäre ja schon nicht so übel
===

Was mir besonders gefällt "hier" bzw. bei den MCs, die
Rechnen (meist) wirklich die angegebene Menge was halt
der Prozessor hergibt

also:    16 MhZ sind 16.000.000 Taktzyklen
abzgl.   "Betriebssystem" ? ca. 30% !???
Summe:   ~11 Mhz zum arbeiten  ???
=
Bei meinem PC kommen Bios/WinXX etc. am ende wohl nur 0.13 % raus !!
=======================================
        Dim StopWt As New Stopwatch

        Dim Counter As Integer
        StopWt.Start()

        While StopWt.ElapsedMilliseconds < 1000

            Counter += 1

        End While

        Console.WriteLine("1 Sekunde: " & Counter)
=======================================
        Counter bei 1 Sekunde = 3.403.719

= welcher Sack hat da meine fehlenden 2.596.596.281 Takte geklaut :(

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Richard Bauer schrieb:
> welcher Sack hat da meine fehlenden 2.596.596.281 Takte geklaut :(

Du hast da was ganz grundlegendes nicht verstanden. Was lässt Dich 
annehmen, daß ein Schleifendurchlauf Deines Basic-Programm da in nur 
EINEM Taktzyklus durchlaufen wird?

von Richard B. (fremder0815)


Lesenswert?

Schon klar, war halt grob im vergleich gedacht/macht.

bestes beispiel: selbes beispiel mit 2 "Counter"
========
        Dim StopWt As New Stopwatch
        Dim Counter1 As Integer
        Dim Counter2 As Integer
        StopWt.Start()
        Do While StopWt.ElapsedMilliseconds < 1000
            Counter1 += 1
            Counter2 += 1
        Loop
        Console.WriteLine("1 Sekunde: " & Counter1)
=========
Dann sinds              3.333.885

vorher: mit 1 Counter = 3.403.719

also braucht eine
Variable ca.            69.834 Takte

egal ... dennoch bleibt nicht wirlich viel von 2.6 GhZ übrig..

= genau sowas will ich ja dann vergleichen/können/beurteilen können

von Lukas K. (carrotindustries)


Lesenswert?

Glaub mir, für fast alle Aufgaben reichen <25MHz und nen paar k Ram aus. 
Auch vermeintlich aufwändige Berechnungen sind auch da im nu 
durchgeführt.

von Richard B. (fremder0815)


Lesenswert?

Luk4s K. schrieb:
> sind auch da im nu
> durchgeführt.

nur zu gerne - glaub ichs dir

will allerdings eure nerven nicht zu stark ausNutzen :-) und werde nun 
mal meine gehversuche mit echter hardware beginnen und - dann wohl - 
nochmal auf eure hilfe zurückkommen

danke

von Weingut P. (weinbauer)


Lesenswert?

hab vor Jahren mal mit AVR, Kamera, GLCD und EDO-RAM-Riegeln 
herumgebastelt, das geht durchaus und garnichtmal so lahm.
Das Bascom Programm schaffte es immerhin 4 Frames/Sekunde
Die Kameradaten (320 * 240) zu speichern, Sobel Kantenerkennung
drüber laufen zu lassen und das ganze aufs GLCD zu schaufeln.
Hab aber auch nur 1 MB adressiert, dafür in Bascom programmiert, ging.

von Richard B. (fremder0815)


Lesenswert?

ich kanns nicht lassen:
Begr. DIE SD-karten sind zwar bestimmt Datenmässig perfekt
      die Lesegeschwindigkeit geht ja auch bis zu 40/80 MB/Sek.

Löst allerdings so nicht mein "gedankliches" problem:

Die Frage wäre ja, was effektiver ist:

a) zu "rechnen"
b) bereits errechnetes in ein register schieben und eben nimma rechnen


= Hand
Gehe über B nach C und mache bei D wasbestimmtes
B = die wurzel aus sonstwas = 3
C = mindestens des gleiche = 2
D = noch schlimmer = 6
= während ja die Augen sehen sollten
= und so weiter

Wenn nun die Aufgabe ist, B C D "zumachen"
der WEG dahin 1 x errechnet wurde ...
dann kann ich doch die LÖSUNG abspeichern



Kommt dann der Zustand BCD irgendwann wieder
greife ich auf myArr(123) exakt auf die Lösung zu und
(simple als B = 1 C = 2 D= 3) gedacht ....
des dauert beim PC ca. 5-7 ns

ähnlich ist es ja mit dem INDEXEN bei datenbanken etc.

====

also, wäre doch eine "steckkarte" welche sich um den REFRESH des RAMS 
kümmert und die daten flott hergibt gar nicht so undenkbar doof g

oder ?


mist: frauchen faucht ... muss wieder  heimdüsen :-)
nixFürUngut zusammen

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Jetzt will ich sehen wie du mit 8(10)MHz maximal SPI takt 40 oder 80 
MB/sec aus ner SD Karte holst ;))

Und: Auf so kleinen systemen lohnt es sich nicht irgendwelche 
berechnungen zu Cachen ... die haben einfach keinen Sepeicher dafür. 
Einfach alles on-the-fly berechnen ist meistens am effektivsten. Bascom 
wird dadrin etwas langsamer sein als C, aber ich hab letztens sogar 
einen fliegenden Tricopter gesehen der in Bascom programmiert wurde, 
also ... soo schlimm kanns nicht sein ;)

von Lukas K. (carrotindustries)


Lesenswert?

Aufwendige Berechnungen wie z.B. Sinus macht man am besten am Computer 
und bindet sie in den Flash (Programmspeicher) ein, in dem meistens eh 
noch viel Platz frei ist.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Ja ok ne Sinustabelle ist da was anderes, da reicht es ja wenn man eine 
viertel Periode speichert, den rest der kurve kann man daraus errechnen 
(durch simple vorzeichendreherei und ausleserichtung der Tabelle) dann 
braucht sowas auch nicht viel Speicher und erst recht keinen RAM ;)

von Ben (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Das ist alles eine Frage dessen, wie gut der Compiler den Source-Code
> auf Assembler Ebene umsetzt.

naja assembler muss auch compiliert werden, da wird nichts in assembler 
gewandelt. ist zwar keine hochsprache, aber die mnemonics müssen auch 
übersetzt werden.

die übersetzun von bascom ist schon ok.

von Richard B. (fremder0815)


Lesenswert?

Hauke Radtki schrieb:
> Jetzt will ich sehen wie du mit 8(10)MHz maximal SPI takt 40 oder 80
> MB/sec aus ner SD Karte holst ;))

... ich hab ja nicht gesagt dass dies mit MCs (wo ich mich ja nun eben 
nicht auskenne) GEHT ! rein technisch hätten diese halt solche 
DatenTransferraten (was nicht gleich mit zugriffszeiten zu sehen ist)

mir ist schon klar dass deine darstellung da eindeutig etwas zum 
scheitern veruteilt ist/wäre.

> Und: Auf so kleinen systemen lohnt es sich nicht irgendwelche
> berechnungen zu Cachen ... die haben einfach keinen Sepeicher dafür.

dies ist mir mitlerweile auch 100%ig KLAR ..

nicht so ganz "warum eigentlich nicht" (wenn man die Logik
MCs (wies der name sagt) sind für KLEINE aufgaben gedacht) weglässt.


MC-Board   ~ 40 EUR
MC-RAM-Adapter ~ 90 EUR (den gibts ja eben leider nicht:-)
(bräuchte einen MC der dann des REFRESHEN übernimmt und die
 "Verwaltung" der Daten !? keine ahnung ob so eine iRrig überhaupt
 machbar ist
XX RAM 2 GB  20 EUR
= Summe:    150 EUR
=

Was müsste so ein "adapter" denn wirklich können um z.B. dort die 
PC-RAMs einfach einzustecken :-)

von Hannes L. (hannes)


Lesenswert?

In Frage 2 redest Du von Bascom. Bascom gibt es meines Wissens nach nur 
für 8051 und für AVR. Beides sind einfache 8-Bit-Systeme, deren Domäne 
das Steuern und Regeln kleiner einfacher Dinge in Echtzeit ist. Sie sind 
weder für das Sammeln größerer Datenmengen noch für Bildverarbeitung 
konzipiert bzw. geeignet. Auch Betriebssysteme sind darauf nicht üblich. 
Sie sind dafür gedacht, nativen Code für überschaubare konkrete Aufgaben 
ohne zusätzliche Verwaltungsarbeit schnell und zuverlässig zu erledigen.

Deine Ansprüche gehen aber da hin, dass Du einen (gut ausgestatteten) PC 
durch einen Mikrocontroller (natürlich 8051 bzw. AVR) ersetzen willst 
und meinst, mit Deinem (hoffentlich vorhandenem) PC-Programmierwissen 
vernünftig und effizient programmieren zu können. Vergiss es, mit Deinen 
hohen Zielen wird Dir auch der Anfang (betreffs 8-Bit-MC) schwer fallen 
bzw. nicht gelingen.

Schau Dich mal bei den 32-Bittern um, da gibt es welche, auf denen Linux 
läuft, die man also (fast) wie PCs programmieren kann.

...

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Der XMega hat zum beispiel schon ein integriertes SDRAM interface, das 
geht schon in die richtung von dem was du suchst.

Wenn du dir einen DDR(2/3) Ram controller auf basis von nem aktuellen 
mikroprozessor bauen willst, kannst du den AVR auch gleich weglassen, 
weil dessen Rechenleistung im vergleicih zum mikroprozessor 
verschwindend gering ist.

Eine weitere möglichkeit wäre dann noch FPGA, wobei man dadrauf dann 
vermutlich einen softcore laufen lassen wird, der dann auch DEUTLICH 
potenter sein wird als ein AVR.

von Richard B. (fremder0815)


Lesenswert?

Hannes Lux schrieb:
> Schau Dich mal bei den 32-Bittern um, da gibt es welche, auf denen Linux
> läuft, die man also (fast) wie PCs programmieren kann.

danke - auf welchem (muss jetzt nachschauen)

> Zitat-oben:  Mikrocontroller (natürlich 8051 bzw. AVR)

ich "es" machen will - weiss ich ja eben nicht :) > bis jetzt!

ES wäre z.B.
ne einfache wasser-pumpen-Sand-auswasch-system-füllstandlösung für meine 
wasserstrahlmaschine - da ist wohl n 8 bit-dingen schon überGut :-)

oder die Z-Achse mit 3 sensoren auszustatten und die höhe
anzugleichen wäre auch noch möglich - glaub ich
(ist rein 2D-anlage - Z = aktuell nur pneumatisch rauf/runter)

ich versuche ja nur meine gedanken (und die sind manch schon wirr)
zu sammeln und etwas einzugliedern

und dies sollte hier auch kein ausnutzen eures wissens sein !
ich schmökere mich wirklich intensiv durch :-)
=============

@ Hauke Radtki: hierauf werde ich mich mal "stürzen"

danke - auch diese INFOS werde ich sichern :-)
und schmökern

mein Fazit aktuell:

Haukes vorschlag - wenns wirklich power bedarf
und die MCs (wie macht man dieses symbol eigentlich)
dann wenns nicht zu teuer und dennoch funktionell (und auch)
einfach sein darf/soll/kann (einfach hat nix mit der qualität
der programmierung zu tun !!!!)

thanks an alle

ctrl-alt-del

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Richard Bauer schrieb:
> (wie macht man dieses symbol eigentlich)

Auf dem Windows-PC (und vermutlich auch vielen Linuxen): AltGr+M. Steht 
ja auch auf der Taste drauf.

Auf dem Mac: Alt+M

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.