Forum: Offtopic Assembler wieder auf dem Weg nach vorn


von Matthias L. (Gast)


Lesenswert?

le x. schrieb:
> Über ein Array von ADC-Messwerten (10 Bit) iterieren und den kleinsten
> Wert heraussuchen.

Das ist doch kein 8bit MSR. Ausserdem kann man sowas als externes Modul 
dazukaufen.

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Und ich habe gesagt, daß ich mich nicht mit weiterem Code hier befassen
> werde.

Das hat niemand erwartet.
Von nichts kommt einfach nichts. Das ist jedem hier klar.

> Vielleicht sollte ich aber nochmal in Erinnerung rufen daß die
> bloße Register-Initialisierung noch nicht die großen Unterschiede
> bringt.

Nur geht es nicht nur um die blosse Registerinitialisierung. Aber das 
kannst du ja auch nicht wissen.

> Eher ist da der bürokratische Aufwand, veranschaulicht im
> Quelltext interessant.

Den Quelltext wirst du nicht zu sehen bekommen. Wozu auch? Verstehst es 
ja ohnehin nicht.

> Immerhin hast Du den in Deinem Nonsens-Beispiel gut herausgearbeitet

Nonsens nennst du das jetzt. Mal sehen, was als nächstes kommt, um von 
deinen Unzulänglichkeiten, effizienten Asm-Code zu produzieren, 
abzulenken.

Dieser Code funktioniert. Er macht exakt das, was er soll.
Und das mit absoluter Effizienz:

4 Byte Flash, 0 RAM, 0 Register, 0 E²PROM
Flankenschonender und stromsparender Takt
Maximal mögliche Schonung des Befehlssatzes

Das sind die unwidersprochenen Fakten!

Da kommst du mit deinem Dödelprogramm nur nicht im entferntesten heran. 
Das ärgert dich natürlich.

[deletia]

mfg.

: Bearbeitet durch Moderator
von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> P. M. schrieb:
>
>> Nein, das wäre ein Fehler. Fachlich ist der Thread schon längst
>> erledigt. Ungefähr 5-10 erfahrene Software-Entwickler sind sich
>> weitgehend einig
>
> ... daß sich Assembler im umrissenen Einsatzgebiet nicht schlagen lässt,
> meinst Du? Die C-Koryphäen schleichen wie Katzen um den heißen Brei
> meines Projekts und keiner traut sich. Woran es allerdings nicht fehlt
> ist allerlei Smalltalk und Ausreden so wie diese hier:
>
>> kann sie auf einschlägige Erfahrung
>> verweisen
>
>> Wobei sie natürlich definiert, was
>> widerlegt heisst
>
> Man kann sich auch dumm stellen- dabei wärs eigentlich so sonnenklar:
> Minimaler Flash- und RAM Verbrauch bei gleicher Funktionalität.
> Am Ende siegt aber dann doch die Angst ;-)

Ja Moby. Die C-Koryphäen sind mit ihrem Latein nun am Ende. Dafür sind 
aber wissenschaftliche Einrichtungen an deutschen Hochschulen und 
Universitäten auf dein geniales Schaffen aufmerksam geworden und widmen 
nun ihre Forschungen in deine Richtung.
Außerdem munkelt man in Fachkreisen, dass dein genialer Code verfilmt 
werden soll. Bekannte Kurzfilmkoryphäen schlagen sich um das Drehbuch, 
welches nur 5 Seiten hat! Die Filmmusik wird der geniale A.S. Melchior 
komponieren. Er kommt mit nur 5 Tönen und 2 Instrumenten aus.
Koreographen arbeiten mit Hochdruck an einem Ballett, in dem nur dein 
Code  Einbeinigen getanzt von wird.
Eine ganz große C-Koryphäe wird sich deinen Code sogar auf sein bestes 
Stück tätowieren lassen. Von der Länge passt er zum Glück!
Alter, du bist mein Held.

Mit so einer wahnsinns Portion Selbstüberschätzung lebt es sich doch 
einfach prima. Nur leider interessiert dein Code hier niemand mehr. 
Warum wohl? Denk mal darüber nach.

: Bearbeitet durch User
von Witkatz :. (wit)


Lesenswert?

Moby A. schrieb:
> Mir
> gehts nur um den Vergleich von Asm vs. C.

Warum? Bist du nicht mehr glücklich mit Asm? Für dich und deine 
Anwendungen ist doch ASM genau das Richtige. Du beherrscht es, dein 
Programm läuft und der Hochsprachenlernaufwand lohnt dafür wirklich 
nicht.

Ähm, worum geht es in dem Thread noch mal?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Witkatz :. schrieb:
> Ähm, worum geht es in dem Thread noch mal?

„Assembler auf dem Weg nach vorn“ – auch wenn es halt nur durch eine
andere Wortwahl bei den Suchbegriffen ist. ;-)

von Witkatz :. (wit)


Lesenswert?

Jörg W. schrieb:
>> Ähm, worum geht es in dem Thread noch mal?
>
> „Assembler auf dem Weg nach vorn“ – auch wenn es halt nur durch eine
> andere Wortwahl bei den Suchbegriffen ist. ;-)

Ach ja, danke.
Assembler, ach was waren das für entschleunigte Zeiten... ;-)
Ich glaube, heute ist das was für Puristen und man muss es einfach 
lieben, so wie Naked Bikes und Oldtimer.

Vielleicht ist an der Statistik wirklich was dran und es deutet sich ein 
nostalgischer Modetrend für Assembler und vergessene CPU's an?

: Bearbeitet durch User
von Thomas E. (thomase)


Angehängte Dateien:

Lesenswert?

Markus M. schrieb:
> Koreographen arbeiten mit Hochdruck an einem Ballett, in dem nur dein
> Code  Einbeinigen getanzt von wird.

Hamburg ist bereit.

mfg.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Witkatz :. schrieb:
> Warum? Bist du nicht mehr glücklich mit Asm? Für dich und deine
> Anwendungen ist doch ASM genau das Richtige. Du beherrscht es, dein
> Programm läuft und der Hochsprachenlernaufwand lohnt dafür wirklich
> nicht.
>
> Ähm, worum geht es in dem Thread noch mal?

Warum sollte bloß ich damit glücklich werden?
Warum sollte ich meine Aussage nicht mit Code beweisen dürfen?

Thomas E. schrieb:
> Da kommst du mit deinem Dödelprogramm nur nicht im entferntesten heran.
> Das ärgert dich natürlich.

Warum denn?
Das würde ja zumindest mal den gleichen Funktionsumfang voraussetzen.
Da bist Du weit entfernt von ;-)

Markus M. schrieb:
> Nur leider interessiert dein Code hier niemand mehr.
> Warum wohl? Denk mal darüber nach.

Weil er sich mit C nicht toppen läßt vielleicht?

Thomas E. schrieb:
> Hamburg ist bereit.

Klasse!

Witkatz :. schrieb:
> Vielleicht ist an der Statistik wirklich was dran und es deutet sich ein
> nostalgischer Modetrend für Assembler und vergessene CPU's an?

Dafür wurde eine halbwegs plausible Erklärung längst geliefert!

Markus M. schrieb:
> Ja Moby. Die C-Koryphäen sind mit ihrem Latein nun am Ende. Dafür sind
> aber wissenschaftliche Einrichtungen an deutschen Hochschulen und
> Universitäten auf dein geniales Schaffen aufmerksam geworden und widmen
> nun ihre Forschungen in deine Richtung.

Du übertreibst meine Ambitionen.
So wie Übertreibung hier eines der beliebtesten Stilmittel gedemütigter
C-Koryphäen ist ;-)

Wieder mal nur Lächerlich-Machen statt harter Fakten.
Der oft frequentierte Notausgang aus der Manege ;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

le x. schrieb:
> Allerdings ist die C-Zeile aber auch vielfach mächtiger.

Aber die Komplexität der Ausdrücke!
Aber die Kryptizität der Ausdrücke!

> Wie bewertest du also "Bürokratie"? Anzahl der Zeilen? Anzahl der
> Spalten? Anzahl der Zeichen?

Bürokratie= Gesamtheit des Sprachumfangs, Regeln, Vorschriften, Typen, 
Operatoren, Deklarationen usw.

> Oder war "Bürokratie" bei dir das Angeben-müssen von Datentypen?
> Nun, dieses "Argument" hab ich dir ja schon mal demontiert.

Demontage? Was für ein großes Wort für dieses überflüssigste aller 
überflüssigen Konstrukte!
Mein absoluter Liebling: Der Cast-Operator! Von der Abbildung konkreter 
Projekt-Notwendigkeiten soweit entfernt wie eine Galaxie im Dark Field.

> Und, das Format heutiger Bildschirme im Hinterkopf, was machst du
> eigentlich mit dem ganzen Platz links und rechts vom Listing?!

Vermutlich fühlst Du Dich schlecht wenn da nix mehr zu lesen ist. Ist 
das eine unangenehme Leere? In Asm passen ggf. noch schöne Kommentare 
hin!

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Moby deine Kommentare über C hören sich so ähnlich an wie:

Feuer zu machen mit einem Feuerzeug ist so Komplexität und Kryptisch da 
kann man an einem Regler die Flammengröße einstellen und man muss noch 
auf einen Knopf drücken und kann sich sooo schnell verbrennen.

Ich bleibe bei meinem Feuerstein, da hab ich die Funkenbildung noch 
selbst im Griff.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

P. M. schrieb:
> Ich identifiziere mindestens 5 Punkte in diesem Satz, die lang und breit
> widerlegt wurden. Wo in der Fachwelt nun wirklich keine Zweifel mehr
> bestehen.

Cool, wie Du für die Fachwelt sprichst.
Cool, wie Du mir die Fachwelt um die Ohren haust.
Leider seh ich für den umrissenen Einsatzbereich rein gar nichts 
widerlegt!

> Du hingegen erfindest ein absurdes Netz an Bedingungen, die erfüllt sein
> müssen

Erfüllt sein muß gar nichts außer von 100% Funktion. Schon mal gar 
nicht im Hobby. Darum gehts hier aber nicht.

> Merkst du eigentlich nicht, wie dumm und
> hinderlich das für dich selbst ist?

Ganz und gar nicht. Die Arbeit und das praktische Ergebnis meiner 
Projekte beweisen mir jeden Tag das Gegenteil ;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Ich bleibe bei meinem Feuerstein, da hab ich die Funkenbildung noch
> selbst im Griff.

Ich bleibe bei dem was für die konkrete Aufgabenstellung am 
einfachsten ist. Das kann ggf. auch eine Blink-LED sein ;-)

> M oby's
> S imply
> R esults

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Carl D. schrieb:
> Wenn ich jetzt verraten würde, daß ich für MSR-Anwendungen im
> Hausbereiche gerade JavaScript und Lua evaluiere, dann würde ich auf den
> ASM-Scheiterhaufen geführt werden. Aber so hab ich Web und Logging und
> graphische Verknüpfung (node-red) und das alles Dank V8-Engine in
> Compiler-Speed.

Womit Du vermutlich auf stromschluckende, größere Hardware festgelegt 
bist? Für MSR-Anwendungen im Hausbereich? Wenn aber etwas schnell fertig 
werden soll und Du mit Lua vertraut bist- warum nicht.
Das berührt die Diskussion Asm vs. Hochsprache in punkto 
Ressourceneinsparung und Effizienz aber in keinster Weise.

Jonny O. schrieb:
> Ich glaube du unterschätzt den Begriff "MSR" erheblich.

Nein. Ich rede hier von 8-Bit MSR für datenarme und weniger 
rechenintensive Anwendungen. Das es da viel mehr + anspruchsvolleres und 
auch die Berechtigung für Hochspracheneinsatz (ggf. auf höherbittigen 
MCs) gibt streitet doch niemand ab !

> Jedenfalls ist
> die Reglungstechnik eine Wissenschaft für sich und der Komplexitätsgrad
> kann bei weitem "kleine Tiny-Sachen" übersteigen. Durchaus auch im
> Hobbybereich.

Im Hobbybereich? Aber sicher. Fürs SmartHome reicht 8-Bit MSR aber 
locker aus. Wenn in Zukunft mehr Intelligenz in die If/Then Abläufe 
reinkommt möglicherweise nicht mehr. Aber die IOT Auswertung soll sich 
ja dann längst auf Servern im Netz abspielen.
MSR in Sensor/Aktorknoten wird sich nicht wesentlich ändern.

> Ich denke du stellst dir unter MSR immer etwas Simples vor. Das mag hie
> aber es gibt viele Anwendungen, da ist ein Cortex
> sinnig.

Kein Thema.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Moby A. schrieb:
> Womit Du vermutlich auf stromschluckende, größere Hardware festgelegt
> bist?

...

Moby A. schrieb:
> Aber die IOT Auswertung soll sich ja dann längst auf Servern im Netz
> abspielen.

Jaja, die noch mehr Stromschluckende Hardware GRINS

Moby A. schrieb:
> Ich rede hier von 8-Bit MSR für datenarme und weniger
> rechenintensive Anwendungen.

Und wieso sollte man für solche Anwendungen überhaupt sich die Mühe 
machen das in Assembler mit maximaler Effizienz zu gestalten? 
KOPFSCHÜTTEL

Ich habe immer noch nicht verstanden wieso ich Assembler lernen sollte, 
wo ich doch schon C kann.

von Witkatz :. (wit)


Lesenswert?

Moby A. schrieb:
> Warum sollte bloß ich damit glücklich werden?
> Warum sollte ich meine Aussage nicht mit Code beweisen dürfen?

Deine Aussage ist einzig und allein, dass man für eine simple 
Steuerungsaufgabe keine Hochsprache lernen muss. Dein Code funktioniert 
und du hast es bewiesen. Warum reicht dir das nicht?

von Michael K. (Gast)


Lesenswert?

Markus M. schrieb:
> Moby A. schrieb:
>> Womit Du vermutlich auf stromschluckende, größere Hardware festgelegt
>> bist?
Jaja, schönes Argument den Stromverbrauch anzuführen aber im gleichen 
Zuge auf Gedeih und Verderb bei einer uralten Architektur zu bleiben.
Auf eine Hardware festgelegt bist auch nur Du mit Deinem ASM Gefriggel.

Moby A. schrieb:
> Mein absoluter Liebling: Der Cast-Operator! Von der Abbildung konkreter
> Projekt-Notwendigkeiten soweit entfernt wie eine Galaxie im Dark Field.
[Zitat]
Castings dienen dazu, die Bedeutung von Daten anders zu interpretieren, 
bzw. der Programmiersprache zu sagen, dass man sich bewusst ist, was man 
da eigentlich tut.
https://www.proggen.org/doku.php?id=c:cast
[Zitat Ende]

Wäre vieleicht doch mal ganz gut für Dich ein C Anfänger Tutorial 
durchzuarbeiten.
Du würdest dann erkennen können das in genau solchen Dingen die großen 
Vorteile einer dich unterstützenden Hochsprache bestehen.
Vergiss das, DU würdest das in 100 Jahren nicht erkennen können.

Moby A. schrieb:
> Nein. Ich rede hier von 8-Bit MSR für datenarme und weniger
> rechenintensive Anwendungen. Das es da viel mehr + anspruchsvolleres und
> auch die Berechtigung für Hochspracheneinsatz (ggf. auf höherbittigen
> MCs) gibt streitet doch niemand ab !

Also besteht die Effizienz von ASM darin das die Erweiterbarkeit da 
aufhört wo ich auf Grund einer veränderten Problemstellung einen 
Messwert direkt im Knoten verarbeiten müsste.
Die Effizient von ASM ist also dadurch gegeben das ich popelige 
Messwerte an einen Server übermitteln muss damit der mir die 
Berechnungen ausführt und zurückschickt.
Meine Güte ist das armseelig.
Welche verschrobenen Ansichten Du doch hast was unter MSR zu verstehen 
ist.
MÜR (Messen, Übermitteln, Steuern) würde es wohl mehr treffen.

Deine Effizienz besteht doch nur darin die Finger von allem zu lassen 
was einen gewissen Komplexitätsgrad überschreitet.
Das nennst Du dann Übung, Vorbereitung, System, frei nach dem Motto:
Sei Schlau, bleib Dumm.

Damit bist die die Katzenberger der MCU Programmierung.
Bravo!

von Robert L. (lrlr)


Lesenswert?

>Übung, Vorbereitung, System,

der Satz ist sowas von Inhaltslos..
kennt jemand irgenwas, wo man das nicht braucht?


sogar für den Gang aufs Klo braucht man Übung, Vorbereitung, und System
..

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Jaja, die noch mehr Stromschluckende Hardware GRINS

Serverhardware in irgend einem Rechenzentrum muß mich doch zu Hause 
nicht interessieren! Davon abgesehen, von zukünftiger Datenauswertung 
war die Rede.

> Moby A. schrieb:
> Ich rede hier von 8-Bit MSR für datenarme und weniger
> rechenintensive Anwendungen.
>
> Und wieso sollte man für solche Anwendungen überhaupt sich die Mühe
> machen das in Assembler mit maximaler Effizienz zu gestalten?
> KOPFSCHÜTTEL

Gleichfalls Kopfschüttel. Wozu sollte man sich dazu die C-Bürokratie 
aufbürden? Daß Asm mehr Effizienz liefert ist da nur ein Zusatz-Bonus 
;-)

> Ich habe immer noch nicht verstanden wieso ich Assembler lernen sollte,
> wo ich doch schon C kann.

Nun, in diesem Fall bleib doch bei C. Ist ja auch nicht alles schlecht 
dran ;-)

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> von zukünftiger Datenauswertung
> war die Rede.

Also nie.

mfg.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Robert L. schrieb:
> Übung, Vorbereitung, System,
>
> der Satz ist sowas von Inhaltslos..

Was damit in Zusammenhang mit Asm gemeint ist hab ich hinreichend 
erläutert. Das trieft nur so vor Inhalt ;-)

Witkatz :. schrieb:
> Deine Aussage ist einzig und allein, dass man für eine simple
> Steuerungsaufgabe keine Hochsprache lernen muss. Dein Code funktioniert
> und du hast es bewiesen.

Prima. Und gaaanz so simpel braucht die MSR Aufgabe nicht zu sein ;-)

Michael K. schrieb:
> Also besteht die Effizienz von ASM darin das die Erweiterbarkeit da
> aufhört wo ich auf Grund einer veränderten Problemstellung einen
> Messwert direkt im Knoten verarbeiten müsste.

Asm begrenzt Erweiterbarkeit in keinster Weise, kann sich auf eine 
gegebene Hardware aber auch optimal einstellen.

> Die Effizient von ASM ist also dadurch gegeben das ich popelige
> Messwerte an einen Server übermitteln muss damit der mir die
> Berechnungen ausführt und zurückschickt.

Da hab ich von der Zukunft des IOT geredet.
Aktor/Sensor Hard/Software und einfache MSR Steuerungen nehmen sich 
sonst nichts.

> Meine Güte ist das armseelig.

Wie Du meine Aussagen zur Kenntnis nimmst, ja.

> Deine Effizienz besteht doch nur darin die Finger von allem zu lassen
> was einen gewissen Komplexitätsgrad überschreitet.

Richtig. Z.B. bürokratisches C und 32-Bit Controller- beides unnötig, 
übertrieben und umständlich für typische 8-Bit MSR Anwendungen!

> Sei Schlau, bleib Dumm.

Falsch. Sei schlau, machs simpel :-)

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Karl H. schrieb:
> Das was du unter 'typisch' verstehst, ist es eben für die meisten
> anderen nicht.

Nochmal: Typische 8-Bit MSR Anwendungen verarbeiten ein paar Dutzend 
max. 16 bittiger Messwerte und benötigen mit Asm keine 32 Bit Power, 
weil sie nicht rechen- und datenintensiv sind.
Fürs SmartHome als einem typischen Einsatzort hab ich hier noch keine 
typischen Gegenbeispiele gehört ;-)

> völlig egal, ob das Programm im Flash 18 oder doch 21% belegt oder
> nicht.

Ob das im konkreten Fall egal ist weiß ich nicht.
Je mehr Reserven für Erweiterungen desto besser.
Mit Effizienz und Ressourcensparung beginnt man besser immer bei Null 
und nicht irgendwo im Projekt!

: Bearbeitet durch User
von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> P. M. schrieb:
>> Dann zeig doch mal eine R-Anwendung in Assembler... :-D
>
> Da gibts nix zum Lachen, sonst würd ich jetzt im Kalten sitzen ;-)
> An eine Regelung zur Raumtemperatur müssen keine hohen Anforderungen
> gestellt werden- wenn man's denn richtig macht.

Haha...auch hier sieht man wieder dein begrenztes Weltbild: Hat der Moby 
eine einfache 2-Punkt-Regelung für seine Heizung gebastelt und das 
genügt bereits als Beweis, dass Assembler für R völlig ausreicht.


Moby A. schrieb:
>> Deine Effizienz besteht doch nur darin die Finger von allem zu lassen
>> was einen gewissen Komplexitätsgrad überschreitet.
>
> Richtig. Z.B. bürokratisches C und 32-Bit Controller- beides unnötig,
> übertrieben und umständlich für typische 8-Bit MSR Anwendungen!

Zu umständlich für dich, weil du es nicht kannst. Alle anderen 
profitieren von massiv effizienterer Entwicklung. Der ganze Thread dient 
dir doch eigentlich nur dazu, deinen begrenzten Fähigkeiten- und 
Wissensstand schönzureden.

Moby A. schrieb:
> Cool, wie Du für die Fachwelt sprichst.
> Cool, wie Du mir die Fachwelt um die Ohren haust.
> Leider seh ich für den umrissenen Einsatzbereich rein gar nichts
> widerlegt!

Fakt ist, dass ich mit Software (in C/C++) Geld verdiene und du nicht. 
Dass ich eine komplette Ausbildung darin habe und du nicht. Dass dies 
auch für die anderen Leute gilt, die dir widersprechen. Ich mag dieses 
Argument normalerweise nicht so, aber hier muss man einfach mal 
feststellen: Der hat keine Ahnung, der versteht noch nicht mal die 
Grundlagen des besprochenen Themas.

von Ralf G. (ralg)


Lesenswert?

Moby A. schrieb:
> Du optimierst? In Asm? Na bravo- genau das mach ich ja auch!
Ach so?
> Bei größeren Programmen verschenkt man weniger Potential als Du hier
> vorgibst- wenn man nämlich vorhandenes, effizientes Codematerial nur
> miteinander verknüpft. Meine Verschwendung bei größeren Programmen für
> mehr Übersicht besteht im wesentlichen nur darin, daß ich die
> enthaltenen sequentiell abzuarbeitenden Bausteine in Form einer
> Call-Liste aufrufe, die sich auch leicht abändern lässt.
Das ist doch keine Optimierung! Das ist Speicher- und 
Rechenzeitverschwendung!

Ich versuch mal ein Beispiel:
Man möchte einen Mittelwert bilden, z.B. aus verschiedenen Messungen vom 
ADC. Nehmen wir mal für den Anfang zwei Messungen. Da steht dann 
ziemlich am Anfang in einer C-Datei:
1
#define ANZAHL  2
Dann kommt eine Funktion die irgendwas Interessantes macht und am Ende 
steht dort:
1
return wert / ANZAHL;
Zur Erklärung des kryptischen C-Codes:
'define' gibt's in Assembler auch. Hat die gleiche Bedeutung. Dort heißt 
es allerdings (kürzer und hochoptimiert) nur 'def'.
Die andere Zeile ins Deutsche übersetzt: Kehre mit dem Ergebnis der 
Berechnung 'wert' geteilt durch 'ANZAHL' zurück. Für 'return' gilt das 
gleiche wie oben. Heißt in Assembler stromsparend 'ret'. Nur: Wo ist 
jetzt das Ergebnis? Natüüürlich: Dazu gibt es einen Hinweis als 
Kommentar am Anfang der Funktion, wo alle verwendeten Register 
dokumentiert sind und welche für Datenüber- und -rückgabe verwendet 
werden. (Eventuell auch noch der Hinweis auf die Verwendung des Stacks.) 
Was für ein Schreibaufwand ;-)

Die Assembler-Zeile vor dem 'ret' ist ganz einfach. Einmal nach rechts 
schieben - fertig! (Ich verrate dir mal was: Das kennt der Compiler. Das 
macht der genauso!)
Nun stellt sich im Laborversuch heraus: Nur zwei Werte sind zur 
Mittelwertberechnung zu wenig, man müsste es mal mit vier probieren 
(Okay, kein Problem, eine Zeile dazu). Mist. Besser wären drei! Noch 
geiler wäre es vielleicht, nur Differenzen zu messen. Oops, da werden 
die Zahlen ja negativ ... Zumindest wird das niemals eine Funktion für 
die Codesammlung! [ Geht jetzt weit am Thema vorbei: Das wäre ein Fall 
für C++ :-) ]

Gleichzeitig kann die Definition 'ANZAHL' hervorragend beim Einlesen der 
Messwerte verwendet werden :) Wie von Zauberhand erstellt der Compiler 
daraus den optimalen Assembler-Code.

> In einem
> finalen Schritt könnte man die Funktionalität zusammenfassen, darunter
> leidet aber die Übersicht mehr als daß es der gesparte Flashspeicher
> wert ist.
Siehst Du, dass ist Optimierung! So macht das der Compiler!

-----
Ich weiß, ist gegen eine Wand geredet. Ich hab' das aber mal gebraucht 
;-)

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Cool, wie Du für die Fachwelt sprichst.

Das steht ihm als Fachmann auch zu.

> Cool, wie Du mir die Fachwelt um die Ohren haust.

Das steht ihm als Fachmann auch zu.

Moby A. schrieb:
> Nochmal: Typische 8-Bit MSR Anwendungen verarbeiten ein paar Dutzend
> max. 16 bittiger Messwerte

In deinem Piffelprojekt werden doch gar keine Daten verarbeitet, sondern 
nur aufgenommen und weitergereicht. Von Dutzenden ganz zu schweigen.
Messen beinhaltet nicht nur das Auslesen eines Wertes, sondern auch eine 
Verarbeitung. Die findet dort aber nicht statt.
Eine Steuerung findet an der Stelle auch nicht statt.
Das Thema Regelung hatten wir ja schon.

Dein Projektchen ist also überhaupt keine "MSR"-Anwendung, sondern eine 
"   "-Anwendung. Im Grunde nichts anderes als ein popeliger Datenlogger.

Du trägst nur dick auf und wirfst mit Begriffen um dich, von denen du 
nicht das geringste verstehst. Wie ein Esoteriker. Es werden einfach 
Dinge behauptet und wenn es um den Nachweis geht, wird gekniffen.

mfg.

von Le X. (lex_91)


Lesenswert?

P. M. schrieb:
> Ich mag dieses
> Argument normalerweise nicht so, aber hier muss man einfach mal
> feststellen: Der hat keine Ahnung, der versteht noch nicht mal die
> Grundlagen des besprochenen Themas.

Da muss ich P.M. zustimmen.

Das Problem ist doch, wer wenig weiß der weiß in der Regel nicht DASS er 
wenig weiß.
Erst mit größerem Wissen über ein Fachgebiet kann man oft erst 
beurteilen wie es sich mit dem eigenen Wissensstand verhält, wo man 
Defizite hat.
Außerdem erkennt man Probleme wo der Ungebildete sich denkt "Ist doch 
alles kein Problem!".

Sehr schön ist das in diesem Thread zu beobachten:
Beitrag "LED-Matrix | Einfachste methode für animationen?"
Der TO hat dort augenscheinlich so wenig Ahnung von der Materie dass er 
garnicht weiß was er sich da vorgenommen hat.
Deswegen immer wieder der Wunsch nach einer "einfachen Lösung ohne 
Programmieren".

In der PRaxis führt dass dann dazu (im Beruf oft erlebt) dass die 
Wenig-Wisser kräftig auf den Putz hauen und die Fachmänner eher ruhig im 
Hintergrund über die Machbarkeit nachdenken.

Ich habe gelernt: wenn mir jemand kommt mit "Ist doch ganz einfach..." 
oder "da muss man doch nur..." ist Vorsicht geboten!

Auf diesen Thread bezogen: du Moby, lebst in so einer kleinen Welt dass 
du nicht ansatzweise erkennen kannst wie wenig du eigentlich weißt.
Vielleicht nicht ganz unpassend:
https://de.wikipedia.org/wiki/H%C3%B6hlengleichnis

von Matthias L. (Gast)


Lesenswert?

P. M. schrieb:
> Ich mag dieses
> Argument normalerweise nicht so, aber hier muss man einfach mal
> feststellen: Der hat keine Ahnung, der versteht noch nicht mal die
> Grundlagen des besprochenen Themas.


Hehe.. Ja der Ton wird etwas rauher.


Aber es war zu erwarten. Es stimmt auch. Moby "Projekt" liest ein ADC 
und sendet in irgendwohin. Das kann man als "Messen" durchgehen lassen. 
Von MSR ist das weit entfernt. Ebenso ein 2/3-Punktregler. Ein richtiger 
Regler ist was völlig anderes. Und eine Datenverarbeitung findet auch 
nicht statt...

Aber natürlich irrt nicht der eine Geisterfahrer, sondern die 
Entgegenkommenden...

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Matthias L. schrieb:
> Von MSR ist das weit entfernt.

Nicht nur das: Es ist auch nur in dieser speziellen Konstellation 
nutzbar und daher für alle anderen User außer Moby selbst wertlos.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Karl H. schrieb:
> Moby A. schrieb:
>
> Leider. Im Ergebnis sehen wir heute die GB an Codemengen eines typischen
> Win-PC, die nur noch GHz Prozessoren stemmen.
>
> Das was ein heutiger PC im Hintergrund noch alles mit erledigt, kannst
> du dir doch gar nicht vorstellen.

Du auch nicht. Und mit der Gültigkeit meiner Aussage hat das auch wenig 
zu tun.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Moby A. schrieb:
> Und mit der Gültigkeit meiner Aussage hat das auch wenig zu tun.

Gültigkeit welcher Aussage? Wie gesagt: Du extrapolierst von 200 Byte 
auf 10KB. Das ist kompletter Unsinn.

Nein: Dein Dreirad fährt NICHT 200 km/h - auch wenn Moby draufsitzt 
und Prrrmmmm Prrrrmmm macht.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Frank M. schrieb:
> Dein Dreirad fährt NICHT 200 km/h

Insbesondere wird es eben auch nicht in die Lage versetzt, 200 km/h
zu fahren, indem man einfach das Treten beherrscht und dann „nur noch“
ausreichend schnell treten muss.

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Du auch nicht.

Doch. Das kann er. Und ich kann das auch. Genauso wie das auch viele 
andere hier können.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

le x. schrieb:

> Ich habe gelernt: wenn mir jemand kommt mit "Ist doch ganz einfach..."
> oder "da muss man doch nur..." ist Vorsicht geboten!

Woher kennst du meinen Ex-Chef?

von P. M. (o-o)


Lesenswert?

Matthias L. schrieb:
> Hehe.. Ja der Ton wird etwas rauher.

Man muss einfach mal. Ich mag es eigentlich nicht, in einer Diskussion 
laut oder unfreundlich zu werden. Aber es muss einfach mal gezeigt 
werden, dass wir hier nicht mehr ein Fachgespräch führen, sondern uns 
mit einem quengelnden Kind herumschlagen. Und da werden die Eltern ja 
auch mal etwas lauter :-)

Und Moby, ich bin jederzeit dir zu verraten, auf welche Erfahrungen sich 
meine Aussagen stützen und ich bin auch jederzeit bereit, dir ein paar 
Tipps betreffend der Effizienz von C zu geben. Schreib einfach ne PN.

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Karl H. schrieb:
"Du extrapolierst aus einer simplen Aufgabe, die du mit ein paar 
Anweisungen erledigen kannst auf das Verhalten von größeren Programmen. 
Und genau das ist nicht zulässig. Denn die zu bearbeitende Komplexität 
steigt nicht linear sondern mindestens exponentiell"

Nein. Das lässt sich pauschal unabhängig jedweder konkreter Anwendung so 
nicht sagen.

"Genau deshalb sind grosse Systeme auch so schwer zu schreiben, weil es 
mit jedem zusätzlichen Subsystem immer schwieriger wird, die 
Querverbinden und Verflechtungen im Auge zu behalten."

Das ist solange richtig wie zusätzliche Subsysteme mehr 
Querverbindungen, Verflechtungen, Nebenwirkungen mitbringen. Allerdings 
gibt es wirksame Gegenmittel: Kapselung, funktionelle Gliederung, 
einheitliche Interfaces. Kurzum: System beim System-Aufbau. Die 
Notwendigkeit strukturierter Hochsprachen lässt sich so weit 
hinauszögern, weit noch aus dem 8-Bit MSR Bereich hinaus.

: Bearbeitet durch User
von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> hinauszögern

Hinauszögern trifft es gut. Ja, man kommt lange darum herum, aber es 
wird extrem mühsam und ineffizient.

Moby A. schrieb:
> Nein. Das lässt sich pauschal unabhängig jedweder konkreter Anwendung so
> nicht sagen.

Sagt wer? Sagt jemand, der gerade mal ein paar kleine 8-Bit-Projektchen 
durchgezogen und noch nie einen Code mit mehr als ein paar hundert 
Zeilen gesehen hat.

von (prx) A. K. (prx)


Lesenswert?

Moby A. schrieb:
> Das ist solange richtig wie zusätzliche Subsysteme mehr
> Querverbindungen, Verflechtungen, Nebenwirkungen mitbringen. Allerdings
> gibt es wirksame Gegenmittel: Kapselung, funktionelle Gliederung,
> einheitliche Interfaces. Kurzum: System beim System-Aufbau.

Du solltest dich in Berlin bei BER bewerben. Jemanden wie dich können 
sie dort brauchen. Also jemanden mit System.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Frank M. schrieb:
> Nein: Dein Dreirad fährt NICHT 200 km/h - auch wenn Moby draufsitzt und
> Prrrmmmm Prrrrmmm macht.

Das muß es auch nicht, das ist ja der Witz ;-)

P. M. schrieb:
> Aber es muss einfach mal gezeigt
> werden, dass wir hier nicht mehr ein Fachgespräch führen, sondern uns
> mit einem quengelnden Kind herumschlagen. Und da werden die Eltern ja
> auch mal etwas lauter :-)

Solange Diskussionen so herablassend in Überlegenheitsmanier geführt 
werden hab ich es besonders leicht ;-)

Anders wäre der Fall wenn die angeblichen "Eltern" ihre Elternschaft mal 
mit besserer C-Codierung meines Projekts unter Beweis stellen würden!

> Und Moby, ich bin jederzeit dir zu verraten, auf welche Erfahrungen sich
> meine Aussagen stützen und ich bin auch jederzeit bereit, dir ein paar
> Tipps betreffend der Effizienz von C zu geben.

Gib Dir selber mal ein paar Tipps, wie sich mein Projekt  in C doch noch 
sparender umsetzen lässt ;-)

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> Solange Diskussionen so herablassend in Überlegenheitsmanier geführt
> werden hab ich es besonders leicht ;-)

Naja, wenn ein Hobbyist, der kein C kann, gegenüber 5-10 professionellen 
Entwicklern so überzeugt die Überlegenheit von Assembler gegenüber 
Hochsprachen predigt und gegen jegliche Argumente resistent ist, dann 
muss man einfach mal die Autoritätskeule auspacken.

Und wie jetzt, du hast es leicht? Konntest du bisher irgend jemand von 
deinem Standpunkt überzeugen?

von Gu. F. (mitleser)


Lesenswert?

Moby A. schrieb:
> Bürokratie= Gesamtheit des Sprachumfangs, Regeln, Vorschriften, Typen,
> Operatoren, Deklarationen usw.

Im Prinzip also alles was Moby nicht versteht. Komisch nur dass es genau 
(alle - 1) sonst verstehen.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

P. M. schrieb:
> Naja, wenn ein Hobbyist, der kein C kann, gegenüber 5-10 professionellen
> Entwicklern so überzeugt die Überlegenheit von Assembler gegenüber
> Hochsprachen predigt und gegen jegliche Argumente resistent ist, dann
> muss man einfach mal die Autoritätskeule auspacken.

Pack aus was Du willst... Wenn Du meinst, es könnte als "Argument" 
gebraucht werden.

Eine Predigt ist für mich übrigens etwas, was nicht mit Code belegt ist 
;-)

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> Eine Predigt ist für mich übrigens etwas, was nicht mit Code belegt ist
> ;-)

Also genau das, was du die ganze Zeit machst. Du behauptest, Assembler 
sei auch für Projekte jenseits von 1 kB oder 10 kB überlegen gegenüber 
C, aber du kannst es nicht durch Code belegen.

von Le X. (lex_91)


Lesenswert?

Um mal wieder bisl produktiv zu werden:

Im Sensorboard-Thread wurde ja mal versucht, die Anforderungen an die 
Software zusammenzufassen.
Du hast dich damals sehr unkooperativ gezeigt, trotzdem bitte ich dich 
nochmal, die dortige Lsite kurz durchzusehen und falsche Anforderungen 
aufzuzeigen oder sogar zu korrigieren.

Hier der anscheinend letzte Stand dieser Anforderungsliste:
1
- Der Prozessor soll den internen 128kHz Takt verwenden
2
- es sollen zyklisch die Analogeingänge AINP-CHANNEL1 (entspricht PB4)
3
  und AINP-CHANNEL2 (entspricht PB3) eingelesen werden (1)
4
- die Analogeingänge sollen mit einer Auflösung von 10 Bit eingelesen werden
5
- das Einlesen soll im free-running Modus des ADC stattfinden, jeder
6
  Wert wird 8mal gelesen und daraus ein Mittelwert gebildet (2)
7
- es sollen zyklisch die Digitaleingänge DINP1-LOW (entspricht PB1)
8
  und DINP2-LOW (entspricht PB5) eingelesen werden
9
- das Einlesen soll unmittelbar vor der Datenübertragung erfolgen
10
- es soll zyklisch ein Datentelegram, bestehend aus 3 Datenbyte, versandt werden
11
- das Telegram soll an DOUT-DATA (entspricht PB0) ausgegeben werden
12
- ferner soll ein zum Datentelegram passendes Clocksignal an DOUT-CLOCK
13
  (entspricht PB2) ausgegeben werden
14
- das Telegram ist wie folgt zu codieren (die Bits sind im Folgenden
15
  durchnumeriert, 0-23. Das Telegram soll LSB first ausgegeben werden)
16
    - Bits 0 -  7: AINP-CHANNEL1, niederwertige 8 Bits
17
    - Bits 8 - 15: AINP-CHANNEL2, niederwertige 8 Bits
18
    - Bit 16 - 17: AINP-CHANNEL1, höherwertige 2 Bits
19
    - Bit 18 - 19: AINP-CHANNEL2, höherwertige 2 Bits
20
    - Bit 20: DINP1-LOW
21
    - Bit 21: DINP2-LOW
22
    - Bits 22-23: Checksumme über das Datentelegram
23
- die Checksumme ist wie folgt zu bilden: alle gesetzten Bits werden in
24
  einem Modulo-4-Zähler gezählt, dessen LSB als Bit 22 ausgegeben wird
25
- das Telegram soll alle 320 ms wiederholt werden; der genaue Wert
26
  ist unkritisch
27
- Das Telegram soll eine Bit-Zykluszeit von ca. 10 ms haben, also 80 ms
28
  pro Byte
29
- sämtliche Funktionalität ist in einem zyklischen Interrupt umzusetzen
30
- das Hauptprogramm soll für Erweiterungszwecke ungenutzt bleiben
31
- es ist nur 1 Timerinterrupt zu verweden, andere Interrupts sind für
32
  Erweiterungszecke reserviert

Ich hab hierzu 2 Fragen, die ich oben gekennzeichnet habe:
1) Soll 8 mal AINP-CHANNEL1 und dann 8 mal AINP-CHANNEL2 eingelesen 
werden oder soll dies im Wechsel geschehen?
2) Soll zwischen den 8 Messpunkten gewartet werden (z.B. im nächsten 
Timer-Interrupt) oder soll eine Messung gestartet werden, sobald der ADC 
wieder frei ist?

Kannst du dazu bitte was sagen?

von Werner P. (Gast)


Lesenswert?

sobald Du auch nur ein Byte SRAM "verschwendest" hast in den Augen von 
Moby eh schon verloren.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

P. M. schrieb:
> Also genau das, was du die ganze Zeit machst. Du behauptest, Assembler
> sei auch für Projekte jenseits von 1 kB oder 10 kB überlegen gegenüber
> C, aber du kannst es nicht durch Code belegen.

Das behaupte ich, ja. Ausgehend von meinem existenten Code.
Die Gegenseite kann ihre Behauptung  >1K (?) auch nicht belegen. Soweit 
waren wir schon ;-)

le x. schrieb:
> Um mal wieder bisl produktiv zu werden:

Prima.

> Kannst du dazu bitte was sagen?

Gerne. Heute abend. Auch wenn es sinnlos ist. Obwohl längst alles dazu 
gesagt wurde ;-(

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Werner P. schrieb:
> sobald Du auch nur ein Byte SRAM "verschwendest" hast in den Augen
> von Moby eh schon verloren.

SO IST ES !

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> P. M. schrieb:
>> Also genau das, was du die ganze Zeit machst. Du behauptest, Assembler
>> sei auch für Projekte jenseits von 1 kB oder 10 kB überlegen gegenüber
>> C, aber du kannst es nicht durch Code belegen.
>
> Das behaupte ich, ja. Ausgehend von meinem existenten Code.

Wie gross ist er denn, der Code?


> Die Gegenseite kann ihre Behauptung  >1K (?) auch nicht belegen. Soweit
> waren wir schon ;-)

Eine ganze Industrie, die für schwachbrüstige Mikrocontroller wie auch 
für High-Performance-Anwendungen weitestgehend C und nicht Assembler 
verwendet, ist wohl Beweis genug, dass C gegenüber Assembler keine 
nennenswerten Effizienznachteile hat.

von Matthias L. (Gast)


Lesenswert?

Moby A. schrieb:
> Werner P. schrieb:
>> sobald Du auch nur ein Byte SRAM "verschwendest" hast in den Augen
>> von Moby eh schon verloren.
>
> SO IST ES !



Was für eine schwachsinnige Aussage.

von Gu. F. (mitleser)


Lesenswert?

Robert L. schrieb:
> der Satz ist sowas von Inhaltslos..
> kennt jemand irgenwas, wo man das nicht braucht?
>
> sogar für den Gang aufs Klo braucht man Übung, Vorbereitung, und System
> ..

Das beschreibt Mobys Horizont schon sehr gut ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Werner P. schrieb:
> sobald Du auch nur ein Byte SRAM "verschwendest"

Wobei natürlich das Abarbeiten von Interrupts (die Stack belegen)
keine Verschwendung ist, auch wenn man die Aufgabe selbstverständlich
ganz ohne solche genauso lösen könnte.  Merke: Moby legt fest, welcher
Verbrauch „Verschwendung“ ist und welcher nicht.  Flash, der für das
Initialisieren nicht benutzten RAMs verplempert wird, ist beispielsweise
keine, aber SRAM statt Registern zu belegen, ist per definitionem
eine solche (obwohl doppelt so viel SRAM da ist wie Register, letztere
als teurer sind).

Vielleicht sollte er ja mal bei Atmel nachfragen, ob er den nicht
benutzten RAM auch zurückgeben darf gegen ein wenig Rabatt. :)

Moby A. schrieb:
> Die Gegenseite kann ihre Behauptung  >1K (?) auch nicht belegen.

Nur deshalb, weil du dich ja nicht auf einen solchen Vergleich einlässt.
Vorgeschlagen hatte Karl Heinz dir einen, und nein, der war ohne
irgendeinen „Heimvorteil“, sprich eine bereits existierende
Implementierung in C.

Oder meinst du etwa, wir müssten dann auch noch das zugehörige
Assemblerprogramm schreiben?  Wie stellst du dir dieses „belegen“
denn sonst vor?

(OK, jetzt geh' ich mal wieder Ressourcen verplempern, dafür werde ich
ja schließlich bezahlt.)

: Bearbeitet durch Moderator
von Werner P. (Gast)


Lesenswert?

mal den moby fragen
ob er mir kann sagen
wenn wir etwas SRAM verwenden
es das selbe ist wie verschwenden

;-)

von Stefan K. (stefan64)


Lesenswert?

Moby A. schrieb:
> Werner P. schrieb:
>> sobald Du auch nur ein Byte SRAM "verschwendest" hast in den Augen
>> von Moby eh schon verloren.
>
> SO IST ES !

Definiere genauer RAM-Verbrauch.
Dieses Programm ist auch in ASM ohne RAM definitiv nicht zu machen.

Gruß, Stefan

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Matthias L. schrieb:
> Was für eine schwachsinnige Aussage.

... besonders für den, der diese Aufgabe nicht lösen kann ;-)

Es geht hier ja nicht darum, Ressourcen da wo nötig nicht in Anspruch zu 
nehmen. Aber es geht darum, ob C im Bedarf an Asm herabkommt. Wird der 
Code des durchschnittlichen Asm-Programmierers Moby gar unterboten, wird 
sich hier kein Moby der Welt mehr hinstellen und C prinzipiell 
mangelnde Effizienz vorwerfen!

von Werner P. (Gast)


Lesenswert?

Moby A. schrieb:
> Es geht hier ja nicht darum, Ressourcen da wo nötig nicht in Anspruch zu
> nehmen.

also darf jetzt SRAM verwendet werden oder nicht?

Bitte ein Ja oder ein Nein.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Stefan K. schrieb:
> Definiere genauer RAM-Verbrauch.
> Dieses Programm ist auch in ASM ohne RAM definitiv nicht zu machen.

Weiter oben stand schon mal das Ergebnis der Assemblierung. Das ist auch 
in meinem Code zu besichtigen.

So, weiter gehts am Abend!

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
>> sobald Du auch nur ein Byte SRAM "verschwendest"
>
> Wobei natürlich das Abarbeiten von Interrupts (die Stack belegen)

Wie der oben aufgeführte AT90S1200 zeigt, kann man auch ohne RAM mit 
Interrupts arbeiten.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Wie der oben aufgeführte AT90S1200 zeigt, kann man auch ohne RAM mit
> Interrupts arbeiten.

Aber nur, wenn man einen separaten Stack hat.  Sein ATtiny13 braucht
dagegen schon RAM dafür. ;-)

(War's nicht der i8008, der auch nur einen Hardwarestack hatte?  Der
ist evolutionsmäßig an mir vorbeigegangen.)

von Werner P. (Gast)


Lesenswert?

A. K. schrieb:
> Wie der oben aufgeführte AT89S1200 zeigt, kann man auch ohne RAM mit
> Interrupts arbeiten.

und? dann kommt Moby und sagt: Es muss ein Attiny13 sein.

von Stefan K. (stefan64)


Lesenswert?

Moby A. schrieb:
>> Definiere genauer RAM-Verbrauch.
>> Dieses Programm ist auch in ASM ohne RAM definitiv nicht zu machen.
>
> Weiter oben stand schon mal das Ergebnis der Assemblierung. Das ist auch
> in meinem Code zu besichtigen.

Den Begriff Definition kannst Du im Duden nachschlagen.

von Carl D. (jcw2)


Lesenswert?

Stefan K. schrieb:
>
> Definiere genauer RAM-Verbrauch.
> Dieses Programm ist auch in ASM ohne RAM definitiv nicht zu machen.
>
> Gruß, Stefan

Doch, natürlich geht das und dazu braucht an keinen μC mit 
Hardwarestack. Man muß lediglich auf Interrupts verzichten, was bei den 
oben zu findenden Specs kein Problem ist. Einen Timer kann man auch 
pollen, ADC genauso -> Stack ist unnötig, Register sichern ist unnötig, 
RAM initialisieren ist unnötig, ...
Nur können muß man halt und damit meine ich nicht die 
Maschinenbefehlsketten, sonder das darüber liegende Schema. 
"Problemorientiert" nennt sich diese Ebene auch und damit sind nicht 
8-Bit-Register-Beschränktheits-Probleme gemeint.

PS: mal sehen in welchen Schipsel der Text von M. wieder "freundlich" 
herabgelassen wird.

von Stefan K. (stefan64)


Lesenswert?

Carl D. schrieb:
> Doch, natürlich geht das und dazu braucht an keinen μC mit
> Hardwarestack. Man muß lediglich auf Interrupts verzichten

Klar geht das, verletzt aber die Spezifikation:

le x. schrieb:
> - sämtliche Funktionalität ist in einem zyklischen Interrupt umzusetzen

Das erinnert mich an mein Betriebspraktikum (schon eine Weile her), wo 
die Forderung die genau umgekehrte war: keinen Timer-ISR und auch keinen 
Timerwert verwenden. Der Entwicklungsleiter hatte wohl mal schlechte 
Erfahrungen mit Interrupts gemacht und meinte, der Timer wird durch 
Störungen fehlgetriggert. Die Folge war, daß alle if-else-Zweige einer 
sehr komplexen Regelung mit nop-Schleifen auf gleiche Länge getrimmt 
wurden.

Diese Steuerungen wurden dann später übrigens in Planierraupen eingebaut 
...

Gruß, Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan K. schrieb:
> Diese Steuerungen wurden dann später übrigens in Planierraupen eingebaut
> ...

Ach, du warst das. :)  Die Geschichte hattest du schon mal zum besten
gegeben. ;-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Moby A. schrieb:
> Werner P. schrieb:
>> sobald Du auch nur ein Byte SRAM "verschwendest" hast in den Augen
>> von Moby eh schon verloren.
>
> SO IST ES !

Dann skalieren wir das mal hoch, wie Moby es gern macht:

   Ein 200Byte-Programm darf KEIN RAM verbrauchen.

Daraus folgt zwingend nach Mobys Skalierungsregeln:

   Ein 10KB-Programm darf KEIN RAM verbrauchen.

Dein angeblich existententes Haus-und-Hof-10-KB-Programm, braucht das 
eigentlich RAM?

Ich bin mir sicher, dass es RAM braucht. Du bist also ein Lügner.

Achja: Damit ein Interrupt einen RETI machen kann, muss es die 
Rücksprungadresse vom Stack aus dem RAM holen.

Also:

  Dein 200Byte-Programm verbraucht RAM!

Und schon wieder eine Lüge.

von Thomas E. (thomase)


Lesenswert?

Carl D. schrieb:
> Man muß lediglich auf Interrupts verzichten[...]

> [...]Nur können muß man halt und damit meine ich nicht die
> Maschinenbefehlsketten, sonder das darüber liegende Schema.

Das hatten wir ja schon. Für das, was er nicht kann, hat er dann wieder 
irgendeine Ausrede.

mfg.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Thomas E. schrieb:
> Für das, was er nicht kann, hat er dann wieder irgendeine Ausrede.

Oder es wird zugekauft. :)

von Werner P. (Gast)


Lesenswert?

Jörg W. schrieb:
> Thomas E. schrieb:
>> Für das, was er nicht kann, hat er dann wieder irgendeine Ausrede.
>
> Oder es wird zugekauft. :)

für Moby kein Problem. Bei so viel "Übung, Vorbereitung, und System"

von P. M. (o-o)


Lesenswert?

Frank M. schrieb:
> Und schon wieder eine Lüge.

Moby operiert recht systematisch mit verdrehter Wahrheit, das ist so.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Thomas E. schrieb:
> Das hatten wir ja schon. Für das, was er nicht kann, hat er dann wieder
> irgendeine Ausrede.

So ist es. Die Forderung "Kein RAM!" kam ja auch erst später hinzu, als 
Yalu ihm schon vorgeführt hatte, dass es effizienter und kleiner in C 
geht.

Da hat er einfach mal so die Spielregeln geändert. Und genau deshalb 
will das hier auch keiner nachprogrammieren. Er wird sofort die wieder 
die Spielregeln ändern, zum Beispiel so:

         "Das C-Programm muss in ASM geschrieben sein!"

Er ist einfach ein schlechter Verlierer - nichts weiter.

von Stefan K. (stefan64)


Lesenswert?

Jörg W. schrieb:
> Ach, du warst das. :)  Die Geschichte hattest du schon mal zum besten
> gegeben. ;-)

Ja, das hatte mich damals sehr "beeindruckt" ...

Was ich damals gelernt habe: die alten Hasen haben zwar viel Wissen, oft 
aber auch viele (Vor-)Urteile, die vor ein paar Jahren sicher sinnvoll 
waren, mittlerweile aber so nicht mehr stimmen.

Gruß, Stefan

von P. M. (o-o)


Lesenswert?

Frank M. schrieb:
> So ist es. Die Forderung "Kein RAM!" kam ja auch erst später hinzu, als
> Yalu ihm schon vorgeführt hatte, dass es effizienter und kleiner in C
> geht.

Und die Forderung ist so dermassen lächerlich. RAM ist schliesslich da, 
um gebraucht zu werden, das hat nichts aber auch gar nichts mit 
Ineffizienz zu tun.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

P. M. schrieb:
> Und die Forderung ist so dermassen lächerlich. RAM ist schliesslich da,
> um gebraucht zu werden, das hat nichts aber auch gar nichts mit
> Ineffizienz zu tun.

Erstens das und zweitens ist es ja nur Zufall, dass er kein RAM 
braucht. Das Micky-Maus-Programm ist halt so lächerlich klein, dass 
alles in Register passt. Bei einem etwas größeren Programm klappt das 
schon nicht mehr.

An 0 Byte RAM festzumachen, dass ASM C überlegen ist, ist einfach nur 
lächerlich.

Aber hier wiederholen sich nur noch die Argumente und man kann nur noch 
den Kopf schütteln. Ich klinke mich daher nun aus diesem Thread aus und 
kann nur noch jedem raten, das auch zu machen und nicht mehr auf Mobys 
Provokationen zu reagieren.

Soll der Troll sich doch mit sich selbst hier unterhalten. Selbst ein 
Kleinkind ist vernünftiger als dieses Balg.

: Bearbeitet durch Moderator
von P. M. (o-o)


Lesenswert?

Frank M. schrieb:
> Soll der Troll sich doch mit sich selbst hier unterhalten. Selbst ein
> Kleinkind ist vernünftiger als dieses Balg.

Das ist schon länger klar, ja. Mich interessiert eigentlich einzig und 
alleine noch, wer hinter dieser Person steckt. Meint er das wirklich 
ernst oder ist er doch irgendwie ein Troll?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

P. M. schrieb:
> Meint er das wirklich ernst

Na klar.  Als Hobbyprogrammierer kann er das ja auch. ;-)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

P. M. schrieb:
> Meint er das wirklich ernst oder ist er doch irgendwie ein Troll?

Das ist mir scheissegal. Es ist auch schnurz, denn überzeugen kann ihn 
sowieso niemand. Da ist mir eine Betonwand, der ich gut zurede, lieber.

Und daher jetzt für mich EOD.

: Bearbeitet durch Moderator
von Le X. (lex_91)


Lesenswert?

Frank M. schrieb:
> Ich klinke mich daher nun aus diesem Thread aus und
> kann nur noch jedem raten, das auch zu machen und nicht mehr auf Mobys
> Provokationen zu reagieren.

Das widerum seh ich anders.

Ich habe hier viele vergnügliche Stunden verbracht und hoffe das geht 
noch eine Weile so, wenigstens bis zu meinem Urlaub ;-)

Ich schäme mich zwar ein wenig für meine niederen Instinkte, aber das 
hier trifft es doch recht anschaulich:

P. M. schrieb:
> (Zugegeben, so ein bisschen Spass macht es schon - wie früher wenn man
> den Klassendepp mit seinen absurden Ansichten noch ein bisschen
> aufgezogen hat.)

Aber mal abwarten ob ich heute Abend irgendwelche Bestätigungen in 
Punkto Anforderungsliste kriege.
Ich glaub zwar nicht so recht dran, denn daran ist ja schon der 
Sensorboard-Thread gescheitert. Aber wenn was kommt probier ich 
vielleicht ein bischen rum, was mit Compiler/Linkerflags so alles drin 
ist.
Und wenn es nur dazu dient die nächste Ausrede zu hören ;-)

von Karl H. (kbuchegg)


Lesenswert?

Stefan K. schrieb:
> Jörg W. schrieb:
>> Ach, du warst das. :)  Die Geschichte hattest du schon mal zum besten
>> gegeben. ;-)
>
> Ja, das hatte mich damals sehr "beeindruckt" ...
>
> Was ich damals gelernt habe: die alten Hasen haben zwar viel Wissen, oft
> aber auch viele (Vor-)Urteile, die vor ein paar Jahren sicher sinnvoll
> waren, mittlerweile aber so nicht mehr stimmen.

Ein alter Hund lernt keine neuen Tricks mehr.

:-)

Stimmt schon was du da sagst. Da muss ich mich auch an der Nase nehmen. 
Viele Dinge mach ich heute so, weil ich sie 'schon immer' so gemacht 
habe, weil ich die Technik dazu gut kenne und oft erfolgreich angewendet 
habe. Was man eben im Schlaf beherrscht, kommt immer wieder gerne zum 
Einsatz. Oft entscheidet auch das Bauchgefühl anhand von Analogien.

von Thomas E. (thomase)


Lesenswert?

le x. schrieb:
> Ich habe hier viele vergnügliche Stunden verbracht

Ein schönes vorweihnachtliches Thema. Erinnert an den Buch-Thread. Einer 
weiss und kann alles und alle anderen sind zu doof.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

Frank M. schrieb:
> P. M. schrieb:
>> Und die Forderung ist so dermassen lächerlich. RAM ist schliesslich da,
>> um gebraucht zu werden, das hat nichts aber auch gar nichts mit
>> Ineffizienz zu tun.
>
> Erstens das und zweitens ist es ja nur Zufall, dass er kein RAM
> braucht. Das Micky-Maus-Programm ist halt so lächerlich klein, dass
> alles in Register passt. Bei einem etwas größeren Programm klappt das
> schon nicht mehr.

Vor allen Dingen. Was willst du da an dem Tiny 13 noch gross erweitern, 
so dass das RAM voll wird? Die Pins sind alle aufgebraucht. Die 
Messwerte kannst du, so wie die Rechnerei ineinander geschachtelt ist 
auch nicht mehr gross rum rechnen. Was machst du mit dem übrig 
gebliebenem RAM? Öhmmmmm.

> An 0 Byte RAM festzumachen, dass ASM C überlegen ist, ist einfach nur
> lächerlich.

Wenn man den Compiler anweist, die Variablen in Register zu legen, würde 
man wahrscheinlich auch das noch wegkriegen. Aber ich hab jetzt ehrlich 
gesagt Yalus Programm noch gar nicht gesehen, was er da eigentlich alles 
gemacht hat.

: Bearbeitet durch User
von Werner P. (Gast)


Lesenswert?

Karl H. schrieb:
> Vor allen Dingen. Was willst du da an dem Tiny 13 noch gross erweitern,
> so dass das RAM voll wird? Die Pins sind alle aufgebraucht. Die
> Messwerte kannst du, so wie die Rechnerei ineinander geschachtelt ist
> auch nicht mehr gross rum rechnen. Was machst du mit dem übrig
> gebliebenem RAM? Öhmmmmm.

jo, es wird auch langweilig hier. Moby bringt nichts Neues. Wiederholt 
sich nur und beharrt auf seiner Meinung. Den SRAM hat er eh voll 
verschwendet. Er schreibt ihn ja am Anfang seines Programms mit Nullen 
voll. Warum auch immer.

Jeder findet seinen Meister. Ich bin mir sicher dass es genügend 
C-Profis gibt die das ASM-Programm von Moby toppen. Auch wenn er das 
nicht glauben mag. Was solls. Wenns ihn freut ;-)

von P. M. (o-o)


Lesenswert?

Na wo bleibt er denn, der Star des Threads?

von Gu. F. (mitleser)


Lesenswert?

Er lernt das kryptische Zeichen "^" auswendig.
Kann also noch dauern. ..

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Karl H. schrieb:
> Aber ich hab jetzt ehrlich
> gesagt Yalus Programm noch gar nicht gesehen, was er da eigentlich alles
> gemacht hat.

Bitteschön:

Beitrag "Re: C versus Assembler->Performance"

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Hier bricht ja jetzt die nackte Panik aus ;-)

Frank M. schrieb:
> Ich bin mir sicher, dass es RAM braucht. Du bist also ein Lügner.

> Achja: Damit ein Interrupt einen RETI machen kann, muss es die
> Rücksprungadresse vom Stack aus dem RAM holen.
>   Dein 200Byte-Programm verbraucht RAM!
>
> Und schon wieder eine Lüge.

Oh, da schlägt ja einer wild um sich ;-)

Daß mein Projekt RAM in Gestalt des Stackbedarfs eines Interrupt-Calls 
benötigt erschließt sich natürlich aus dem Programmcode. Aber nur für 
Kenner ;-)

Ganz klar: Durch die Hintertür des Stackverbrauchs wird auch dem 
C-Programm nicht erlaubt, sich an der Ressource RAM zu bedienen. Für den 
Stack stehen wie meinem Asm-Programm nicht mehr als 2 RAM-Bytes zur 
Verfügung = 1 Unterprogramm-Ebene.

Frank M. schrieb:
> Ich klinke mich daher nun aus diesem Thread aus und
> kann nur noch jedem raten, das auch zu machen und nicht mehr auf Mobys
> Provokationen zu reagieren.

Gut so Frank. Du machst das einzig Richtige. Deine Provokationen 
sind ja auch weitgehend verpufft ;-)

von Carl D. (jcw2)


Lesenswert?

Ne der missioniert gerade:
Beitrag "Re: Heim Automatisierungswahn"

Wobei er ein BLE-Module entdeckt hat, auf dem ein M0 mit 128k Flash und 
16k RAM werkelt, auf dem ein sicher nicht in ASM geschriebener 
BASIC-Interperter läuft. Wichtig ist eben eins: keine irgendwie 
erkennbare C-Bürokratie. Aber noch besser sind kleine AVR Boards, die 
per proprietären Drahtprotokoll plaudern. Sagt er.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Werner P. schrieb:
> Ich bin mir sicher dass es genügend
> C-Profis gibt die das ASM-Programm von Moby toppen. Auch wenn er das
> nicht glauben mag.

Ob Du's glaubst oder nicht- mich würde das freuen.
Aber Du hast Recht, dran glauben mag ich nicht.

Jörg W. schrieb:
> Merke: Moby legt fest, welcher
> Verbrauch „Verschwendung“ ist und welcher nicht.

Nein. Moby legt nur fest, daß zu einem sinnvollen Ressourcen-Vergleich 
natürlich das SRAM gehört. ;-)

le x. schrieb:
> Ich schäme mich zwar ein wenig für meine niederen Instinkte

Das ehrt Dich. Wenigstens einer der's mal ehrlich zugibt ;-)

le x. schrieb:
> Aber mal abwarten ob ich heute Abend irgendwelche Bestätigungen in
> Punkto Anforderungsliste kriege.

Selbstverständlich. Setz mich gleich nochmal dran.

> Ich glaub zwar nicht so recht dran, denn daran ist ja schon der
> Sensorboard-Thread gescheitert. Aber wenn was kommt probier ich
> vielleicht ein bischen rum, was mit Compiler/Linkerflags so alles drin
> ist.

Ja, das fürchte ich auch: Mehr als ein bischen Rumprobieren kommt nicht 
bei raus. Ich denke, das haben in der Zwischenzeit schon ganz andere 
gemacht ;-)

> Und wenn es nur dazu dient die nächste Ausrede zu hören ;-)

Wenn Du es nicht schaffst ist meiner Meinung nach Streit 
vorprogrammiert. Ich bin schon gespannt worüber. Denn eines wird auf 
Biegen und Brechen erstmal nicht passieren: Daß die C-Seite die 
unbestreitbaren Vorteile von Asm eingesteht ;-)

: Bearbeitet durch User
von Bernhard M. (boregard)


Lesenswert?

Moby A. schrieb:
> Daß mein Projekt RAM in Gestalt des Stackbedarfs eines Interrupt-Calls
> benötigt erschließt sich natürlich aus dem Programmcode. Aber nur für
> Kenner ;-)
>
> Ganz klar: Durch die Hintertür des Stackverbrauchs wird auch dem
> C-Programm nicht erlaubt, sich an der Ressource RAM zu bedienen. Für den
> Stack stehen wie meinem Asm-Programm nicht mehr als 2 RAM-Bytes zur
> Verfügung = 1 Unterprogramm-Ebene.

D.h. es kann möglich sein, ein dem Assemblerprogramm gleichwertiges 
Programm in C zu schreiben, wenn der Compiler den identischen Assembler 
output erzeugt, bzw. exact die gleichen Bytes ins Flash gebrannt werden.
Alles andere ist eine Verletzung der Spezifikation.

Damit geht ein besseres Programm per Definition nicht.
Der Thread ist somit beendet.
Bitte schliessen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Moby A. schrieb:
> Ganz klar: Durch die Hintertür des Stackverbrauchs wird auch dem
> C-Programm nicht erlaubt, sich an der Ressource RAM zu bedienen. Für den
> Stack stehen wie meinem Asm-Programm nicht mehr als 2 RAM-Bytes zur
> Verfügung = 1 Unterprogramm-Ebene.
Was ist das für ein unsinniger Mikrocontroller? Selbst lausigste 
kleinste PIC hat 2 Stack-Ebenen.

Und warum etwas "sparen", was man schon gekauft und bezahlt hat? Man 
kann sich auch selber geißeln. Es ist so schön, wenn der Schmerz wieder 
nachlässt...

Bernhard M. schrieb:
> Der Thread ist somit beendet.
> Bitte schliessen.
Neineinein! Dann verliere ich die 2000er-Wette. Auch wenns nur ums 
"Recht haben" geht...  ;-)

: Bearbeitet durch Moderator
von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Daß die C-Seite die unbestreitbaren Vorteile von Asm eingesteht

Dazu musst du aber ein Programm zeigen, dass die Vorteile auch nutzt.

So, wie ich das in meinem genialen Programm gemacht habe.

Es macht exakt das, was es soll. Nicht mehr und nicht weniger.
Und das mit absoluter Effizienz:

4 Byte Flash, 0 RAM, 0 Register, 0 E²PROM
Flankenschonender und stromsparender Takt
Maximal mögliche Schonung des Befehlssatzes

Das sind die unwidersprochenen Fakten!

Da kommst du mit deinem Dödelprogramm nicht im entferntesten heran.

mfg.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernhard M. schrieb:
> Alles andere ist eine Verletzung der Spezifikation.

So ist es.  Ist es schlechter, hat Moby gewonnen, ist es besser, dann
fehlt ihm irgendein Feature, welches nachträglich als wesentlich
erklärt wird.  Da die „Spezifikation“ ja nur im „selbsterklärenden
Assemblerprogramm“ besteht, ist das doch auch völlig logisch, oder?

> Der Thread ist somit beendet.

Nein, schließlich ist Assembler ja „auf dem Weg nach vorn“. :-)

Ich habe gestern ein Buch über Assembler-Programmierung geschenkt
bekommen.  In seinem Vorwort enthält es den Absatz:
1
    When writing a book on the assembly language of a processor, we know in
2
advance that it will not register in posterity. By its very nature, an assembly
3
language has the same life expectancy as the processor it supports ­ perhaps 20
4
years at best. What's more, this type of programming is obviously not used for the
5
development of software projects and so is of little consequence. (*)

Man würde sich wünschen, Moby würde den gleichen Realismus an den
Tag legen wie der Autor dieses Buches. ;-)

(*) Für die, die des Englischen nicht ganz so mächtig sind:

Wenn man ein Buch über Assembler-Programmierung eines bestimmten
Prozessors schreibt, ist von vornherein klar, dass es nicht für die
Ewigkeit bestimmt ist.  Prinzipbedingt hat die Assemblersprache die
gleiche Lebenserwartung wie der durch sie unterstützte Prozessor,
vielleicht maximal 20 Jahre.  Jedoch wird diese Art von Programmierung
nicht für die Entwicklung von Softwareprojekten genutzt, sodass das
keine großartigen Konsequenzen nach sich zieht.

: Bearbeitet durch Moderator
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Carl D. schrieb:
> Ne der missioniert gerade:

Irrtum Carl D. Ich bin mit ganzem Einsatz wieder hier bei meinem 
Lieblingsthema. Lass mal das BLE-Modul. Das interessiert hier nicht!

Karl H. schrieb:
> Vor allen Dingen. Was willst du da an dem Tiny 13 noch gross erweitern,
> so dass das RAM voll wird? Die Pins sind alle aufgebraucht. Die
> Messwerte kannst du, so wie die Rechnerei ineinander geschachtelt ist
> auch nicht mehr gross rum rechnen. Was machst du mit dem übrig
> gebliebenem RAM? Öhmmmmm.

Du warst beim Lesen meines Projekt-Threads eben auch nicht aufmerksam.
Das will ich Dir aber keinesfalls vorwerfen, da Dein Zeiteinsatz bei den 
vielen Hilfe-Threads in jedem Falle höher zu bewerten ist.

Ja, was macht man mit zusätzlichem Platz? Warum bist Du da jetzt 
plötzlich so einsilbig einfallslos?

Stell Dir eine Messwert-Vorabauswertung vor, bevor die Daten auf die 
Reise gehen. Garniert vielleicht mit einen kleinen History. Da kann man 
u.U. jedes Bytchen gebrauchen. Die Main ist noch frei. Idealer 
Erweiterungspunkt, um Funktionalität wunderbar unabhängig von der 
periodischen Datenausgabe mit vielleicht ein paar Unterprogrammebenen 
einzuziehen.

Du weißt natürlich selbst, daß es mir nicht darum geht, vorhandene 
Ressourcen ungenutzt zu lassen. Natürlich. Natürlich weißt Du, daß es 
nur um den prinzipiellen Ressourcenvergleich C vs. Asm geht bei 
bitteschön gleich(st)er Vergleichs-Funktionalität geht... Natürlich K.H. 
Gibs halt mal zu ;-)

Ist halt für einen überforderten C-Profi schwierig, bei diesen 
Schwierigkeiten nicht in konstruierte Nebenkriegs- Schauplätze und 
Plänkeleien abzugleiten. Immerhin bleibst Du im zweiten KnowHow 
Vergleich unter den steil emporragenden C-Koryphäen, der hier so 
hintergründig mitläuft überzeugend- da Du der Versuchung widerstehst, 
das zwar tröstende, erheiternde, ablenkende- aber eigentlich doch so 
dumme und entlarvende Hohn/ Spott/ Beileidigungs/ Betrugsvorwurf- 
Spielchen mitzuspielen. Respekt.

> Wenn man den Compiler anweist, die Variablen in Register zu legen, würde
> man wahrscheinlich auch das noch wegkriegen.

Ich bin doch eigentlich sooo gutmütig und großzügig: Die Möglichkeit 
massierten Registereinsatzes hab ich für C doch offengelassen. Auch 
wenns im Vergleich zu den meinigen 11 von 32 Registern dann natürlich 
nicht schön ausschaut und, wenn nicht den faktischen, so aber zumindest 
den moralischen Sieg kostet ;-)

von Thomas E. (thomase)


Lesenswert?

Jörg W. schrieb:
> hat Moby gewonnen,

Ja. Dann hat er aber nur eine Schlacht gewonnen. Den Krieg hab längst 
ich gewonnen.


Mit meinem absolut genialen Programm.

Es macht exakt das, was es soll. Nicht mehr und nicht weniger.
Und das mit absoluter Effizienz:

4 Byte Flash, 0 RAM, 0 Register, 0 E²PROM
Flankenschonender und stromsparender Takt
Maximal mögliche Schonung des Befehlssatzes

Das sind die unwidersprochenen Fakten!

Da kommt er mit seinem Dödelprogramm nicht im entferntesten heran.

mfg.

von (prx) A. K. (prx)


Lesenswert?

Lothar M. schrieb:
> Was ist das für ein unsinniger Mikrocontroller? Selbst lausigste
> kleinste PIC hat 2 Stack-Ebenen.

Aber nicht im RAM. ;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Thomas E. schrieb:
> Da kommst du mit deinem Dödelprogramm nicht im entferntesten heran.

Und Du mit Deiner Rumpffunktionalität nicht im Entferntesten an die 
Arbeitsresultate meines Projekts. Hattest Du das noch nicht bemerkt?
Es spricht momentan nicht gerade für Dich, daß Du so unterschiedliche 
Funktionalität unbedingt im Ressourcenverbrauch vergleichen willst.
Also mir wär das peinlich ;-)

Bernhard M. schrieb:
> D.h. es kann möglich sein, ein dem Assemblerprogramm gleichwertiges
> Programm in C zu schreiben, wenn der Compiler den identischen Assembler
> output erzeugt, bzw. exact die gleichen Bytes ins Flash gebrannt werden.
> Alles andere ist eine Verletzung der Spezifikation.

So eine Aussage wär mir auch peinlich...

> Der Thread ist somit beendet. (*)
> Bitte schliessen.

(*) Wegen Überforderung des C-Compilers.
Schnell weg damit. Aus dem Auge, aus dem Sinn.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

So liebe Leute, auch wenns gerade so einen Spaß macht mich an dem 
hilflosen Herumrudern mancher Akteure hier zu laben- ich schau nochmal 
auf mein Programm wegen der -hochtrabend so genannten - "Spezifikation" 
...

Fortsetzung folgt.

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Und Du mit Deiner Rumpffunktionalität nicht im Entferntesten an die
> Arbeitsresultate meines Projekts. Hattest Du das noch nicht bemerkt?
> Es spricht momentan nicht gerade für Dich, daß Du so unterschiedliche
> Funktionalität unbedingt im Ressourcenverbrauch vergleichen willst.

Welch ein Ausbruch, um von der eigenen Unzulänglichkeit abzulenken.

Ich will gar nichts vergleichen. Mein geniales Programm lässt sich mit 
nichts vergleichen. Das Beste gewinnt jeden Vergleich. Und dieses 
Programm ist sogar das absolut Beste.

Es macht exakt das, was es soll. Nicht mehr und nicht weniger.
Und das mit absoluter Effizienz:

4 Byte Flash, 0 RAM, 0 Register, 0 E²PROM
Flankenschonender und stromsparender Takt
Maximal mögliche Schonung des Befehlssatzes

Das sind die unwidersprochenen Fakten!

Da kommst du mit deinem Dödelprogramm nicht im entferntesten heran.

mfg.

von Bernhard M. (boregard)


Lesenswert?

Moby A. schrieb:
> So eine Aussage wär mir auch peinlich..

Ich habe nur alle Deine Aussagen knapp zusammengefasst.

von Moby A. (moby-project) Benutzerseite


Angehängte Dateien:

Lesenswert?

So, also nochmal:

le x. schrieb:
> Hier der anscheinend letzte Stand dieser Anforderungsliste:

> - Der Prozessor soll den internen 128kHz Takt verwenden

OK.

> - es sollen zyklisch die Analogeingänge AINP-CHANNEL1 (entspricht PB4)
>   und AINP-CHANNEL2 (entspricht PB3) eingelesen werden (1)

OK. Die zu verwendende Referenzspannung wird für jeden Kanal einzeln in
Form einer Konstante vorgegeben!

> - die Analogeingänge sollen mit einer Auflösung von 10 Bit eingelesen
> werden

Natürlich. Wir wollen doch nix "verschwenden" ;-)

> - das Einlesen soll im free-running Modus des ADC stattfinden

Im Interesse der Interrupt-Einsparung wärs gut. Kann man aber auch
manuell starten/im ADC-Int auslesen. Aber Stackbeschränkung (s.u.)
beachten!

>   jeder Wert wird 8mal gelesen und daraus ein Mittelwert gebildet (2)

Richtig.

> - es sollen zyklisch die Digitaleingänge DINP1-LOW (entspricht PB1)
>   und DINP2-LOW (entspricht PB5) eingelesen werden

Richtig.

> - das Einlesen soll unmittelbar vor der Datenübertragung erfolgen

Ja. Wär echt sinnvoll, daß die nächste Datenausgabe aktuelle Werte
enthält...

> - es soll zyklisch ein Datentelegram, bestehend aus 3 Datenbyte,
> versandt werden
> - das Telegram soll an DOUT-DATA (entspricht PB0) ausgegeben werden
> - ferner soll ein zum Datentelegram passendes Clocksignal an DOUT-CLOCK
>   (entspricht PB2) ausgegeben werden

OK.

> - das Telegram ist wie folgt zu codieren (die Bits sind im Folgenden
>   durchnumeriert, 0-23. Das Telegram soll LSB first ausgegeben werden)
>     - Bits 0 -  7: AINP-CHANNEL1, niederwertige 8 Bits
>     - Bits 8 - 15: AINP-CHANNEL2, niederwertige 8 Bits
>     - Bit 16 - 17: AINP-CHANNEL1, höherwertige 2 Bits
>     - Bit 18 - 19: AINP-CHANNEL2, höherwertige 2 Bits
>     - Bit 20: DINP1-LOW
>     - Bit 21: DINP2-LOW

Ok.

>     - Bits 22-23: Checksumme über das Datentelegram
> - die Checksumme ist wie folgt zu bilden: alle gesetzten Bits werden in
>   einem Modulo-4-Zähler gezählt, dessen LSB als Bit 22 ausgegeben wird

Bit22= Bit 0 der Summe, Bit23= Bit 1 der Summe

> - das Telegram soll alle 320 ms wiederholt werden; der genaue Wert
>   ist unkritisch
> - Das Telegram soll eine Bit-Zykluszeit von ca. 10 ms haben, also 80 ms
>   pro Byte

Genau. 80ms Pause zwischendurch dienen der Synchronisierung.
Siehe Diagramm! Dort ist dann auch zu sehen, daß das letzte Datenbit auf
PB0 in der Pause stehenbleibt.

> - sämtliche Funktionalität ist in einem zyklischen Interrupt umzusetzen
> - das Hauptprogramm soll für Erweiterungszwecke ungenutzt bleiben

Die letzten 2 Punkte hatte ich schon zum Abschuß freigegeben.
Wär natürlich schön, der Anwender könnte auf dieser Architektur
aufbauend einfachst erweitern, ohne daß die unabhängige
Ausgabe-Funktionalität gestört würde (dann mit entsprechender
TimerInt-Registersicherung).

> - es ist nur 1 Timerinterrupt zu verwenden, andere Interrupts sind für
>   Erweiterungszecke reserviert

Siehe auch Stack-Beschränkung!

> 1) Soll 8 mal AINP-CHANNEL1 und dann 8 mal AINP-CHANNEL2 eingelesen
> werden oder soll dies im Wechsel geschehen?

Ist doch wurscht.

> 2) Soll zwischen den 8 Messpunkten gewartet werden (z.B. im nächsten
> Timer-Interrupt) oder soll eine Messung gestartet werden, sobald der ADC
> wieder frei ist?

Was willst Du da starten? Der ADC läuft doch Free Running...
Wenn Du den schön regelmäßig ausliest hast Du immer aktuelle Werte.
Mit einer anderen Lösung muss in jedem Fall eines sichergestellt sein:
Die Datenausgabe enthält den Durchschnitt von 8 aktuellen Messungen!

Und zum Abschluß das Wichtigste:
Für den faktischen Sieg soll

a) die Datenausgabe stimmen (was ich sehr schnell mit der .hex prüfen
kann)
b) kein Byte Flash mehr verbraucht werden
c) kein weiteres SRAM ab 60H und höchstens 2 Byte vom Stack benötigt
werden.

Alles klar?
Wenn nicht, bitte fragen.
Anbei auch nochmal das aktuelle Programm.

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> a) die Datenausgabe stimmen (was ich sehr schnell mit der .hex prüfen
> kann)
> b) kein Byte Flash mehr verbraucht werden
> c) kein weiteres SRAM ab 60H und höchstens 2 Byte vom Stack benötigt
> werden.

Ich dachte, wir sprechen von Programmen jeglicher Grösse, aber ich sehe 
bei dir nur ein Mickymausprogramm...

Bevor wir darüber sprechen, sollten wir uns über sinnvolle Vorgaben 
und daraus folgend eine sinnvolle Architektur unterhalten. Denn die 
beinhaltet dein Programm nicht.

Und: Die obige Anforderungsliste ist alleine schon kryptischer als das 
zugehörige C-Programm.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

P. M. schrieb:
> Ich dachte, wir sprechen von Programmen jeglicher Grösse, aber ich sehe
> bei dir nur ein Mickymausprogramm...
>
> Bevor wir darüber sprechen, sollten wir uns über sinnvolle Vorgaben
> und daraus folgend eine sinnvolle Architektur unterhalten. Denn die
> beinhaltet dein Programm nicht.
>
> Und: Die obige Anforderungsliste ist alleine schon kryptischer als das
> zugehörige C-Programm.

Schon klar.
Die Ausreden gehen gleich wieder los- und woher wußte ich nur, daß 
ausgerechnet Du den Anfang machst ;-)

Deine Vorstellungen von "sinnvoller Architektur" kannst Du woanders 
einbringen. Hier gehts nur darum, die beschriebene, sehr einfache 
Funktionalität kürzestmöglich umzusetzen.

Toi toi toi...

von Gerhard O. (gerhard_)


Lesenswert?


von Moby A. (moby-project) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> http://www.zoe-online.org/dateien/Einblick_02_11.jpg
>
> Seufz...

Ja, die Aufgabe ist für C nicht einfach ;-(
Dieses verdammt sperrige Sprachinstrumentatium !

von Gerhard O. (gerhard_)


Lesenswert?


: Bearbeitet durch User
von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> Schon klar.
> Die Ausreden gehen gleich wieder los- und woher wußte ich nur, daß
> ausgerechnet Du den Anfang machst ;-)
>
> Deine Vorstellungen von "sinnvoller Architektur" kannst Du woanders
> einbringen. Hier gehts nur darum, die beschriebene, sehr einfache
> Funktionalität kürzestmöglich umzusetzen.

Die Kernaussage der meisten Diskussionsteilnehmer ist:

"C verbraucht selbst bei kleinsten Programm in der Regel (wenn 
überhaupt) nicht wesentlich mehr Resourcen als ein hochoptimiertes 
Assembler-Programm UND ab mittelgrossen Programmen ist es durch 
Assembler nicht mehr zu schlagen."

Und du kommst her, und verlangst, diese Behauptung zu beweisen, indem 
eine C-Umsetzung deines Mickymausprogramms kein Byte mehr brauchen darf 
als deine Assembler-Version? Absurd.

von Ralph S. (jjflash)


Lesenswert?

... es ist unglaublich mit welcher Geduld mit Moby diskutiert wird... 
Jetzt habe ich mir fast den ganzen Abend lang die Texte gelesen, 
manchmal amüsiert, dann wieder gelangweilt und dann wieder hoch erstaunt 
ob einer extremen Ignoranz (von Seiten Moby).

Ich habe lange Jahre programmiert, den C64 in Assembler, einen Schneider 
CPC, mein erster ganzer Stolz, einen Commodore PC1 (mit einem wahnwitzig 
schnellen 8088 CPU 4,7MHZ ... langsamer ging es auf PC Basis nie).

Die habe ich der Effizienz wegen noch in Maschinensprache programmiert, 
wobei beim Schneider CPC und dem PC1 schon auch Turbo Pascal eingesetzt 
wurde (und auch zu diesen Zeiten gab es schon die Glaubenskriege um die 
Sprache).

Zunehmend (mit leistungsfähigeren Teilen) wurde Maschinensprache immer 
seltener (und mein letztes großes Projekt - irgendwann Anfang der 80er - 
war ein Texteditor der den maximalen Speicher Segementgrenzen hinweg 
verwenden konnte. DA war auf den damals langsamen Kisten Pascal und C zu 
langsam dafür). Ich hatte DOS gleichzeitig gehasst und geliebt. Mein 
erster Controller war ein 8048 und den musste ich mangels vorhandenem 
Compiler in Maschinensprache programmieren.

Auf Controllerebene das letzte große Projekt in (reiner) 
Maschinensprache war ein Logger, der über Temperatureinwirkung über der 
Zeit ein bestimme Qualitätsaussage zu einem Produkt machen mußte. Was 
für ein Grauen !!!! Das Gerätchen mußte über serielle Schnittstelle eine 
klare Aussage in Gleitkommadarstellung machen. Bei der Verrechnung der 
Daten mußte ein Logartihmus programmiert werden. !!!!

Sowas ... in Maschinensprache ... will ich nie mehr machen müssen! Vllt. 
war ich "besser" als ein Compiler (aber ich wage das mal zu bezweifeln).

Jeder hier (außer wohl Moby) weiß, wann er welche Sprache einsetzt und 
wann er (wenn es halt nicht mehr anderst geht) wirklich Maschinensprache 
einsetzt. Bei den heutigen Controllern, bei denen nicht mehr die 
Leistungsfähigkeit des Controllers den Preis desselbigen bestimmt, 
sondern die Absatzzahlen, müssen  - glücklichweise - nicht mit jedem 
Byte gegeizt werden damit etwas läuft.

Wie hier schon oft erwähnt: Entwicklungszeiten sind mit ganz großers 
Sicherheit in Assembler länger (wenn es nicht gerade Trivialprogramme 
sind).

Hier schreiben Koryphäen ihres Fachs wie Jörg Wunsch (um einen einzigen 
mal zu nennen), dem ich ungesehen fast jedes Wort glaube was er schreibt 
und ich wundere mich sehr, woher sie die Geduld und die Motivation 
genommen haben sich mit Moby auseinander zu setzen.

Ich gebe zu, dass mich Maschinensprache auch heute noch reitzt und ich 
das auch immer wieder mal zum Spaß anpacke und ich mich drüber freue mit 
wie wenig Code man etwas anstellen kann. Auch zum Lehren wie das Ding 
das man da programmiert denn eigentlich wirklch funktioniert, zum 
Zeigen, dass man eine Subtraktion durch eine Addition mit mit dem 
Komplement bewerkstelligt werden kann ist es super.

Fürs Schreiben von kompletten Appliationen jedoch nicht.

Meine Hochachtung gilt hier all denjenigen Experten, die sich mit Moby 
auseinandergesetzt haben und es wohl auch weiter tun werden (allerdings 
müssten sie wissen, dass es aus


cli();
while(1);
sei();

kein Entrinnen gibt, das Wiedereinschalten der Interrupts nie 
stattfindet und sich in der while-Schleife die "Diskussion" (es ist 
keine) mit Moby wiederfindet.

Gute Nacht allen, die vllt. noch lesen !

von Moby A. (moby-project) Benutzerseite


Lesenswert?

P. M. schrieb:
> ab mittelgrossen Programmen

An die Vorstellung eines 1-10K Asm Programms und die Annahme, jemand 
würde das in C neu formulieren wage ich gar nicht erst zu denken, wenn 
sich schon bei 200 Bytes jeder C'ler hier die Zähne ausbeißt.
Damit bleibts bei Aussage gegen Aussage.

P. M. schrieb:
> Und du kommst her, und verlangst, diese Behauptung zu beweisen, indem
> eine C-Umsetzung deines Mickymausprogramms kein Byte mehr brauchen darf
> als deine Assembler-Version? Absurd.

Absurd wäre wohl die Annahme, daß Du das schaffst.

Mit Übung, Vorbereitung und System lassen auch noch viel größere 
Asm-Programme C im Ressourcenverbrauch im Regen stehen, da summieren 
sich die Einspareffekte noch. Irgendwann setzt dann mal die Übersicht 
sinnvolle Grenzen- aber weit über dem hinaus, was Experten wie Du 
vielleicht für möglich halten.

von Gerhard O. (gerhard_)


Angehängte Dateien:

Lesenswert?

Ralph S. schrieb:
> (allerdings
> müssten sie wissen, dass es aus
>
> cli();
> while(1);
> sei();
>kein entrinnen gibt...


Was seid ihr doch für Nachteulen;-)

P.S. Den Arduino Watchdog müßt Ihr entschuldigen, konnte keinen für den 
AVR finden...

: Bearbeitet durch User
von Ralph S. (jjflash)


Lesenswert?

... lach, ich geb mich geschlagen .... mit dem Wachhund...

(ob ich jetzt fieberhaft nach einem AVR OHNE WDT suchen soll? Vllt. 
findet sich ja noch irgendwo ein altes Exemplar bei dem das nicht 
implementiert ist.... bevor jetzt jemand kommt: Reset-Taste zählt nicht)

von Gerhard O. (gerhard_)


Lesenswert?

Ralph S. schrieb:
> ... lach, ich geb mich geschlagen .... mit dem Wachhund...
>
> (ob ich jetzt fieberhaft nach einem AVR OHNE WDT suchen soll? Vllt.
> findet sich ja noch irgendwo ein altes Exemplar bei dem das nicht
> implementiert ist.... bevor jetzt jemand kommt: Reset-Taste zählt nicht)

Ganz so war das doch nicht gemeint.;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> ... es ist unglaublich mit welcher Geduld mit Moby diskutiert
> wird...

Diese Energie wird nun wohlweislich nicht in eine C-Version meines 
simplen Projekts gesteckt- und damit in den einzig möglichen, reellen 
Vergleich. Das gibt doch zu denken...

Interessant auch, was Du alles als Diskussion bezeichnest ;-)

> Fürs Schreiben von kompletten Appliationen jedoch nicht.

Für so einen kleinen AVR ist das bei 8-Bit MSR kein Problem.
Nur keinen Elefanten aus ner kleinen Maus machen ...

> in der while-Schleife die "Diskussion" (es ist
> keine) mit Moby wiederfindet.

Die While-Schleife läuft so ab:
- Moby beschreibt und zeigt die Effizienz von Asm.
- die Cler erkennen diese (manchmal nur versteckt an)
- da aber nicht sein kann was nicht sein darf: Attacke!
(alle Mittel sind recht)

Goto 1 ;-)

: Bearbeitet durch User
von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Die While-Schleife läuft so ab:
> - Moby beschreibt und zeigt die Effizienz von Asm.

Guten Morgen Moby,
wann schnallst due endlich, dass Effizienz nicht nur Flash- und SRAM 
Verbrauch bedeuten, sondern die hier bereits in aller Länge und Breite 
dargelegten anderen Faktoren beinhaltet!!!



> - die Cler erkennen diese (manchmal nur versteckt an)

Die "Cler" hier kennen sich meist alle viel besser und tiefer mit ASM 
aus als du. Und jeder weiß, wann und warum die eine oder die andere Art 
des Programmierens für ihn sinnvoller und effektiver ist.
Dein "sehr spezieller" Datenlogger loggt zumindest keinen hinter dem 
kalten OPfen hervor. Bei einem Projekt, f+r dass das Gehirn wenigstens 
warmläuft sähe das sicher anders aus.

> - da aber nicht sein kann was nicht sein darf: Attacke!
> (alle Mittel sind recht)
Das stimmt allerdings. Besser wäre es, das Thema von nun an zu 
ignorieren, weil es so sinnlos ist. Es ist scheißegal, ob das Programm 3 
Byte größer oder kleiner ist, 4 Byte SRAM belegt oder nicht. Und DAS ist 
der Punkt, den du beharrlich verteidigst. Leider für den Restderwelt 
grundsätzlich bedeutungslos.

Vlt. erschlägt ja auch jemand den ganzen Müll hier mit einem C Programm 
das tatsächlich kürzer ist, und dich damit mit deinen eigenen Waffen 
-nein, Dogmen.

von Clemens M. (panko)


Lesenswert?

Also wenn jetzt schon Bedingung ist, nur 2 Byte Stackverbrauch zu haben 
ist Moby irgendwie wirklich verzweifelt....

Nicht dass du anscheinend wirklich ausgeblendet hast, dass dein erstes 
ultimatives Programm verloren hast, du predigst von Planung, Ordnung, 
Blabla und hast immer fehlerhaften Code gepostet (Wie auch immer das 
passieren kann) Du ignorierst Gegenfragen. Das Argument der potentiellen 
Erweiterbarkeit deiner Projekte ist inzwischen kaum noch zu hören. DAS 
war ja dein Argument manisch Ram und Flash zu sparen - als Karl Heinz 
mal fragte, was genau an 1 kB Flash an Erweiterungen im Raum stehen 
könnten hat man natürlich nix gehört. Wenn dein Sensor eine Kennlinie 
bekommen muss, passt die nicht rein. Wenn du die Kennlinie berechnen 
könntest, wäre es keine typische 8 bit Anwendung... sic.
Inzwischen ist das aber auch im Hintergrund. Jetzt ist deine neue Sau 
ein Stack der keiner ist....

Wie wäre es mit einem Remi? Deinen Code als inline asm in einem C 
Programm? Dass du nur ein einziges, künstlich konstruiertes Eisen im 
Feuer hast (was ja trotz Planung verbuggt war) und dieses Eisen wirklich 
nur seiner selbst willen von dir hochgehalten wird blendest du wirklich 
aus?

Selbst um eine Aussage zu untermauern wie 'bis 1kB ist händischer asm 
Code einem c Code in puncto Flash/Ram Verbrauch bzw Geschwindigkeit 
überlegen' wäre etwas mehr als eine statistische Ausnahme angesagt.
Mach doch mal bei einem angebotenen Vergleich mit. Gerade diejenigen die 
es dir angeboten haben sind faire Leute, die dich nicht wegen etwaiger 
Fehler zerreißen werden.

Es lesen viele mit, die sich bestimmt auch als Hobbyisten zu Assembler 
bekehren lassen würden. Du würdest dir einen Namen machen. Also jetzt 
nicht nur als Witzfigur.

von Michael K. (Gast)


Lesenswert?

Moby A. schrieb:
> Also mir wär das peinlich ;-)
Ich habe nicht das Gefühl das Dir noch irgendwas peinlich ist.

von Robert L. (lrlr)


Lesenswert?

Frage (an die Allgemeinheit) zu dem ADC und Durchschnitt..

moby macht ja aus den 8 Werten einen Durchschnitt, der dann aber auch 
wieder nur 10 bit hat..

ich hab es bei meinem Helligkeitssensor so gemacht, dass ich einfach 10 
Werte addiere.

in der Hoffnug dadurch einen höhere genauigkeit zu erhalten (vorallem 
bei dämmerung)  (also ungefähr 13Bit)

ist das unrealistisch? sind die (nur) 10Bit schon unrealistisch?

warum moby hier einen durchschnitt rechnet, verstehe ich nicht,
gehts hier um Falschmessungen die dann nur 1/8 ins ergebnis einfließen 
sollen?

muss man das machen? konnte bei mir jetzt nicht feststellen dass da auch 
mal was falsch gemessen wird..

würde man dann nicht 10 Werte messen und min und max weglassen?

einen Durchschnittüber die Zeit (300ms) will moby eh nicht (bzw ist es 
ihm egal? die doku ist hier sehr "mager")

: Bearbeitet durch User
von Le X. (lex_91)


Lesenswert?

Markus M. schrieb:
> Es ist scheißegal, ob das Programm 3
> Byte größer oder kleiner ist, 4 Byte SRAM belegt oder nicht.

Für Moby eben nicht. diese 3 Byte Flash und 4 Byte RAM sind sein 
Notnagel, sein letzter Strohhalm.
C ist  ausgelegt für die Benutzung eines Stacks und der AVR ist 
ausgelegt für C.
Trotzdem führt er immer wieder den Stackverbrauch als DAS Kriterium, als 
die härteste aller Anforderungen an. Weil er weiß dass er damit jedem 
Compiler massive Knüppel zwischen die Beine wirft.
Da könnte das Programm tausendmal schneller implementiert, tausendmal 
besser lesbar und tausendmal besser erweiterbar sein.
1 Byte Stack (ne sorry, 3 - denn Moby braucht ja auch 2) und du hast 
verloren.

Das ist so wie wenn du gegen Usain Bolt im Sprint antrittst, ihm aber 
Arme und Beine zusammenbindest.
Du kannst dich nachher vielleicht gut fühlen, aber die Aussagekraft so 
eines Experimentes kann man wohl bestreiten...

Ich zitier mich mal selbst:

le x. schrieb:
> Der wirklich eigentlichen Grund für diese Forderung ist wirklich ein
> ganz anderer:
> Du weist natürlich, dass die Sprache C ausgelegt ist für die Nutzung
> eines RAMs. C ist außerdem massiv auf einen Stack angewiesen (wenn man
> keinen Krüppel-Code schreiben will), dieser befindet sich traditionell
> ebenfalls im RAM.
>
> Indem du also die Nutzung des RAMs verbietest ist die Aufgabe also ohne
> Klimmzüge* nicht mehr lösbar. Auch eine Möglichkeit einen "Vergleich" zu
> gewinnen...

von Michael K. (Gast)


Lesenswert?

Moby A. schrieb:
> Diese Energie wird nun wohlweislich nicht in eine C-Version meines
> simplen Projekts gesteckt- und damit in den einzig möglichen, reellen
> Vergleich. Das gibt doch zu denken...

Warum auch.
Braucht man 20B weniger Flash aber 1Byte mehr SRAM -> Verloren
Braucht man kein SRAM aber 1Byte mehr Flash -> Verloren
Braucht man weniger Flash UND weniger SRAM -> Verloren

Für den dritten Fall wirst Du Dir dann irgendwas ausdenken was jetzt 
ganz plötzlich ein unglaublich wichtiges Kriterium ist.
Nutzloses RAM zu initialisieren oder auf einem Bein zu hüpfen und dabei 
wie ein Huhn zu gackern oder sonst was.

Zur Not muß die Zeichenlänge des Quellcodes herhalten oder der RAM 
Verbrauch des Compiler auf dem Entwicklungssystem oder wie viele 
Mausclicks man braucht um die IDE zu starten.
Dir wird schon was einfallen was man als völlig hirnrissiges Argument 
mißbrauchen kann.

le x. schrieb:
> Hier der anscheinend letzte Stand dieser Anforderungsliste:

Super.
Eine Checksumme die so schwach ist das ich würfeln kann ob die Werte 
wirklich stimmen.
Völlig ineinander verwurstelte Daten die ich am Zielsystem erst wieder 
auseinandernehmen muß um was damit machen zu können.
Eine synchrone unidirektionale Punkt zu Punkt Verbindung bei der im 
Zeitlupentempo Daten übermittelt werde statt ein vernünftiger Feldbuss 
mit Master / Slave Protokoll und starker CRC.
RS485, Lin, Can, DALI, herje es gibt so viel Busse die alle mehr können 
als dieser Unfug.
Wenigstens eine Manchester Codierung für Gleichspannungsfreie 
Datenübertragung mit Impulsübertragern und Taktrückgewinnung aus den 
Daten hätte man doch machen können um irgendwas sinnvolles bei einem 
proprietären Bus zu machen.

Den Teil wo die Entprellung der digitalen IOs stattfindet oder die 
Offset und Linearitätskalibrierung des ADCs habe ich auch nicht finden 
können.

Mit Verlaub.
Das ist vollkommener Müll.
Warum sollte man sich die Mühe geben so einen sinnlosen Kram zu 
programmieren der unzuverlässige Daten erhebt und auf eine unflexible 
und unzuverlässige Art übermittelt.

Die unterste Schmerzgrenze für Sensor / Aktor Knoten sehe ich bei 
adressierbaren Master / Slave Feldbussen mit min. 16 Teilnehmern.

von Matthias L. (Gast)


Lesenswert?

Michael K. schrieb:
> Den Teil wo die Entprellung der digitalen IOs stattfindet oder die
> Offset und Linearitätskalibrierung des ADCs habe ich auch nicht finden
> können.

Das ist keine typische 8bit MSR Anwendung.


>Master / Slave Protokoll und starker CRC.
>RS485, Lin, Can, DALI

Das verbraucht alles RAM und Flash. => Wird ausgelagert.

von Michael K. (Gast)


Lesenswert?

Matthias L. schrieb:
> Michael K. schrieb:
>> Den Teil wo die Entprellung der digitalen IOs stattfindet oder die
>> Offset und Linearitätskalibrierung des ADCs habe ich auch nicht finden
>> können.
>
> Das ist keine typische 8bit MSR Anwendung.

Damit treibt Moby die ganzen Anfänger ins 32bit Lager.
Die lesen was für Moby typische 8bit Anwendungen sind nehmen lieber 
gleich einen STM32.

Matthias L. schrieb:
>>Master / Slave Protokoll und starker CRC.
>>RS485, Lin, Can, DALI
> Das verbraucht alles RAM und Flash. => Wird ausgelagert.
Das was wirklich völlig sinnloser Flash und Ram Verbrauch ist nennt Moby 
eine typische 8bit MSR Anwendung.

Nach meinem Empfinden das nicht mehr als ein 8bit MSR 'Hello World'
Das primitivste Grundgerüst eines Programmes das nicht mehr kann als zu 
zeigen das man prinzipiell ein Programm zum laufen bekommt.

von Thomas E. (thomase)


Lesenswert?

Moby A. schrieb:
> Die While-Schleife läuft so ab:
> - Moby beschreibt und zeigt die Effizienz von Asm.
> - die Cler erkennen diese (manchmal nur versteckt an)
> - da aber nicht sein kann was nicht sein darf: Attacke!
> (alle Mittel sind recht)
>
> Goto 1 ;-)

Falsch.
1
#define PHRASENDRESCHERMODUS 0
2
#define IMMER_AN 0
3
4
while(PHRASENDRESCHERMODUS==IMMER_AN)printf("Mit Uebung, Vorbereitung und System...");

mfg.

: Bearbeitet durch User
von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Moby A. schrieb:
> b) kein Byte Flash mehr verbraucht werden

Bedeutet also konkret: Wenn irgend jemand ein (Assembler)-Programm 
findet, dass 1 Byte kürzer ist als deines, hat deine Lösung absolut 
und komplett versagt?

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> An die Vorstellung eines 1-10K Asm Programms und die Annahme, jemand
> würde das in C neu formulieren wage ich gar nicht erst zu denken, wenn
> sich schon bei 200 Bytes jeder C'ler hier die Zähne ausbeißt.
> Damit bleibts bei Aussage gegen Aussage.

Andersrum: Du weisst haargenau, dass du nur bei so einem Miniprogramm 
eine Chance hast.

Kein Mensch schreibt in nützlicher Frist ein 10kB+ Assembler-Programm, 
das einen guten C-Compiler schlägt. Und nur beim Mini-Programm kann man 
darauf hoffen, dass ein kleiner (fixer) C-Overhead den 
Speicher-Verbrauch doch noch um die entscheidenden* paar Bytes hin die 
Höhe treibt.

* "Entscheidend" im Mobyschen Sinn, nicht nach sinnvollen 
Designkriterien.

von Matthias L. (Gast)


Lesenswert?

>in nützlicher Frist

Hier fehlt auch das (*). Denn das ist bei jedem (ausser Moby) eine 
wichtige Ressource.

von Gu. F. (mitleser)


Lesenswert?

Moby A. schrieb:
> Also mir wär das peinlich ;-)
>
>
> So eine Aussage wär mir auch peinlich...

Also da muß ich mich schon wundern.
Bis jetzt war dir doch echt nix zu peinlich. Z.B. das hier

Moby A. schrieb:
> Mach Dir
> lieber Gedanken darüber, wie der von meinem Tiny13 Projekt zur Schau
> gestellten Assembler-Überlegenheit zu begegnen ist ;-)

von Bernd N. (bernd_n)


Lesenswert?

>> in der Hoffnug dadurch einen höhere genauigkeit zu erhalten (vorallem
>> bei dämmerung)  (also ungefähr 13Bit)

>> ist das unrealistisch?

Ja

Schaust du letzten Beitrag unter 2 (Seitenaufteilung). Da bin ich darauf 
eingegangen und habe Fotos beigefügt von dem was geht. Ist aber keine 
typische Anwendung für kleine AVRs :-) braucht zu viele Resourcen :-)

12 BIT bei 256 Werten kannst du in der Praxis erwarten, mehr ist nicht 
drin.

von Matthias L. (Gast)


Lesenswert?

>12 BIT bei 256 Werten

12bit ist grösser 8bit. Und 256 ist auch grösser 8bit

=> keine typische 8bit Anwendung.

von Robert L. (lrlr)


Lesenswert?

@Bernd Noll
danke

es ist zwar Seite 5  und nicht 2

und man kann sowas auf verlinken
Beitrag "Re: Assembler wieder auf dem Weg nach vorn"

aber hat mir schonmal sehr geholfen.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Johann L. schrieb:
> Bedeutet also konkret: Wenn irgend jemand ein (Assembler)-Programm
> findet, dass 1 Byte kürzer ist als deines, hat deine Lösung absolut und
> komplett versagt?

Nein, keinesfalls.  Wurde ja schon gemacht.  Das, was die dann
kürzere Lösung notwendigerweise weggelassen hat, wird zum zwingend
notwendigen Feature der anderen Implementierung erklärt.  Das ist ja
in seinem Sinne durchaus folgerichtig, denn es gibt ja keinerlei
„offizielle“ Spec außer der bestehenden Implementierung.

Damit ist es völlig klar, dass jegliche alternative Implementierung
bei ihm keine Chance hat.  Selbst eine Implementierung in C müsste
notwendigerweise exakt den gleichen Assemblercode liefern, um
akzeptiert zu werden.

von Le X. (lex_91)


Lesenswert?

Jörg W. schrieb:
> Das ist ja
> in seinem Sinne durchaus folgerichtig, denn es gibt ja keinerlei
> „offizielle“ Spec außer der bestehenden Implementierung.

Wobei es mittlerweile ja eine vom ihm gereviewede und kommentierte Spec 
gibt. Von dem her müsste das jetzt als "offiziell" gelten.

von Werner P. (Gast)


Lesenswert?

Moby hat doch geschrieben
> c) kein weiteres SRAM ab 60H und höchstens 2 Byte vom Stack benötigt

Damit dürfte klar sein dass das C Programm keinen SRAM verwenden darf. 
Ausser 2 Bytes vom Stack.

Ergo: Wenn das C-Programm kleiner ist (Flash) und keinen SRAM verbraucht 
hast gewonnen.

Ausser Moby fällt dann wieder was ein ;-)

von (prx) A. K. (prx)


Lesenswert?

Matthias L. schrieb:
>>12 BIT bei 256 Werten
>
> 12bit ist grösser 8bit. Und 256 ist auch grösser 8bit

256 Werte passen in 8 Bits. Nicht aber der Wert 256. ;-)

von Wolfgang S. (ws01)


Lesenswert?

Moby A. schrieb:
> Gerhard O. schrieb:
>> http://www.zoe-online.org/dateien/Einblick_02_11.jpg
>>
>> Seufz...
>
> Ja, die Aufgabe ist für C nicht einfach ;-(
> Dieses verdammt sperrige Sprachinstrumentatium !

Mit Verlaub, Du hast Dich verlaufen. Und daß Du mit einigem rhetorischen 
Geschick die Horden, die Dir hier ausführlichst widersprachen, zunehmend 
aufs Glatteis geführt hast*), macht es nicht besser.

Vergiss den TIOBE-Index. Man muß nicht dieses alte Goebbels-Zitat 
(->http://www.statistik.baden-wuerttemberg.de/Veroeffentl/Monatshefte/PDF/Beitrag04_11_11.pdf) 
bemühen ("Glaube keiner Statistik ..."), um zu begreifen, daß bloße 
Popularität auch im Bereich der Programmiersprachen kein vernünftiges 
Kriterium für irgendwas ist.  Abgesehen davon erkennten diejenigen, die 
diesen schlechten Spruch klopfen, erfahrungsgemäß eine gefälschte 
Statistik nicht mal dann, wenn sie sie in die Nase bisse.

Wenn ich anfangs noch eine gewisse Sympathie den Ansatz und das Motiv 
betreffend hatte, das ich bzgl. Deines Anliegens zu erkennen glaubte, 
nämlich den Ansatz, gegen den Trend mit modernen Mitteln minimalistische 
Lösungen zu erkunden, so sehe ich inzwischen, daß dafür offenbar 
entweder die Kenntnisse oder das Interesse fehlen, oder beides.

Was Du und nicht nur Du nämlich übersiehst und was in den beiden obigen 
Bemerkungen herauskommt ist der Glaube, daß mit ASM hier und C dort sich 
gewissermaßen komplementäre Ansätze gegenüberstünden, deren Vorzüge es 
auszufechten gelte.

Wenn man sich aber die Entwicklung der Programmiersprachen der letzten 
rund fünfzig Jahre betrachtet, beginnend mit Autocoder 
https://en.wikipedia.org/wiki/Autocoder (ca 1950),  Fortran (ca 1957), 
Algol (1958), Lisp (1958), Snobol (1962), PL/I (1964), APL (1965), 
Simula (1967), Prolog (1972), ML (1972), C (1973), Haskell (1990), Rust 
(2010), usw.

so sieht man, daß C keineswegs die abstrakte, abgehobene, sperrige 
Programmiersprache darstellt, die Du darin zu sehen glaubst, sondern 
eine späte Regression, eine Rückkehr (fast) zu der Sprachebene des 
Assembler, wenn man aber auf die Erfahrung mit Sprachdesign, Compilerbau 
und Codegenerierung für Sprachen wie PL/I, Algol, Algol68, Lisp oder 
Fortran zurückblicken kann. Was man halt macht, wenn man eine PDP11 
geschenkt bekommt und damit ein kleines OS portieren (i.e. 
reimplementieren) möchte, ohne auf den Komfort einer vernünftigen 
Programmiersprache verzichten zu müssen.

Money quote aus http://www.bell-labs.com/usr/dmr/www/chist.html "...and 
we regretted losing the advantages of writing programs in a language 
above the level of assembler, such as ease of writing and clarity of 
understanding".

Mein Hauptkritikpunkt an C ist der unterbelichtete Preprocessor. Ein 
Assembler, mit dem ich vor 'zig Jahren in einem größeren Projekt 
gearbeitet habe, konnte in der Makrophase erheblich mehr als der C 
preprocessor heute, so daß sich auf Basis dessen durchaus 
Kontrollstrukturen oder kleinere DSL bauen ließen.

Mein Ansatz, hätte ich auf dem Gebiet irgendwelche Aktien, wäre zu 
untersuchen, ob sich z.B. ein runtimelibfreies Rust soweit abspecken 
läßt, daß sich damit auch Plattformen unterhalb des üblichen 
32+-Bit-Geraffels als Targent verwenden lassen.  Das wäre aber 
Dickbrettbohren, weil auch das im Moment gegen den allgemeinen Trend 
geht und mit einer Menge Arbeit verbunden.

*) Rhetorisches 101: ignoriere eisern alle guten Gegenargumente, dann 
werden Deine Widersacher im weiteren Verlauf zunehmend auch die 
schlechten Argumente durchprobieren. Du hattest aber in dem Moment 
verloren, als Du Dich geweigert hast, eine abstrakte, vernünftige und 
abschließende Spezifikation einer Aufgabenstellung zu formulieren, 
anhand deren man verschiedene Implementationsansätze vergleichen könnte.
Der Rest ist nur noch davon ablenkendes Geplänkel.

von Robert L. (lrlr)


Lesenswert?

>vernünftige und
>abschließende Spezifikation einer Aufgabenstellung

diese müsste aber alle Behauptungen von Moby beinhalten, also auch z.b. 
vorallem die angebliche einfache Erweiterbarkeit, müsste irgendwie 
"getestet" werden (ohne konkretes Beispiel wird das nicht gehen..)


die "Einfachheit" ansich von ASM
(es müsste also definiert werden, was "Einfach" ist..)

welche Resourcen wie wichtig sind:
also wer "gewonnen" hat wenn die (dann erweiterte) Version 1 Byte mehr 
RAM, die andere dafür 1 Byte mehr Flash braucht..



und man müsste definieren, was denn mit dieser "Aufgabenstellung" 
bezweickt werden soll, und ob das mit der "Aufgabenstellung" überhaupt 
möglich ist..

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Ich habe gestern ein Buch über Assembler-Programmierung geschenkt
> bekommen.

Gratuliere.

> In seinem Vorwort enthält es den Absatz:
> ... By its very nature, an assembly language has the same life
> expectancy as the processor it supports ­perhaps 20 years at best.

An dieser Stelle verschätzt sich der Autor meiner Meinung nach gewaltig.
Eine Lebensdauer über ein halbes Menschenleben dürfte es eher treffen. 
Mit gut gelagerten Reserven allemal.

Ansonsten ist die Feststellung unter einem weiteren Gesichtspunkt 
irrelevant: Egal ob mit Asm oder Hochsprache- ob viele kommerzielle 
Produkte (heutzutage und vor allem zukünftig bei beschleunigter 
IT-Entwicklung) auch noch in >20 Jahre unverändert Verwendung finden 
werden ist doch seeeehr zweifelhaft.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Moby A. schrieb:
> An dieser Stelle verschätzt sich der Autor meiner Meinung nach gewaltig.

Deine Selbstüberschätzung ist einfach unübertroffen. :-)

von Werner P. (Gast)


Lesenswert?

ich glaube der denkt nicht wenn er schreibt. Das sind nur Reflexe.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Wolfgang S. schrieb:
> so sieht man, daß C keineswegs die abstrakte, abgehobene, sperrige
> Programmiersprache darstellt, die Du darin zu sehen glaubst, sondern
> eine späte Regression, eine Rückkehr (fast) zu der Sprachebene des
> Assembler, wenn man aber auf die Erfahrung mit Sprachdesign, Compilerbau
> und Codegenerierung für Sprachen wie PL/I, Algol, Algol68, Lisp oder
> Fortran

Na ja gemessen an den anderen heißen Kandidaten (für andere, z.T. viel 
größere Systeme) schon. Das interessiert aber hier jetzt herzlich wenig.

> Du hattest aber in dem Moment
> verloren, als Du Dich geweigert hast, eine abstrakte, vernünftige und
> abschließende Spezifikation einer Aufgabenstellung zu formulieren,
> anhand deren man verschiedene Implementationsansätze vergleichen könnte.

Und ich sage Dir: Ich könnte noch 100 abstrakte, vernünftige und 
abschließende Spezifikationen der Aufgabenstellung formulieren und es 
würde an einem nichts ändern: Ein erfolgreicher C-Nachbauer findet sich 
nicht. Kann sich nicht finden. Asm bleibt C gegenüber bei 8-Bit MSR eben 
für viele viele KB Code im Prinzip überlegen: Nämlich dann, wenn man mit 
Übung, Vorbereitung und System drangeht ;-)

An der Ausrede für ein derart kleines, höchstdokumentiertes Projektchen, 
der C-Nachbau würde an einer Spezifikation scheitern, kann ich mich nur 
regelmäßig belustigen.

So, gerade keine Zeit, in der Nacht dann wieder.
Vielen Dank für die weiter zahlreichenden Rückmeldungen.

von (prx) A. K. (prx)


Lesenswert?

Werner P. schrieb:
> ich glaube der denkt nicht wenn er schreibt. Das sind nur Reflexe.

Hab auch schon an ELIZA gedacht.

von Le X. (lex_91)


Lesenswert?

Moby A. schrieb:
> Asm bleibt C gegenüber bei 8-Bit MSR eben
> für viele viele KB Code im Prinzip überlegen: Nämlich dann, wenn man mit
> Übung, Vorbereitung und System drangeht ;-)

Ich folgere mal daraus:
"Wenn man NICHT mit ÜVS rangeht ist ASM gegenüber C NICHT überlegen."

Der selbe Satz, aber ohne die beiden Negierungen:
"Ohne ÜVS ist ASM gegenüber C unterlegen."

Jetzt bringen wir mal ÜVS auf beide Seiten ins Spiel, d.h. der 
ASM-Programmierer und der C-Programmierer benützen jetzt ÜVS. Dann wird 
daraus:
"Mit ÜVS ist ASM gegenüber C mit ÜVS unterlegen."

Oder, salopp ausgedrückt: Der ASM-Programmierer muss sich ganz schön ins 
Zeug legen (ÜVS) um mit einem systemlosen C-Programmierer mitzuhalten. 
Gibt sich der C-ler aber auch ein wenig Mühe (also jetzt auch ÜVS) kann 
der ASM-ler einpacken, denn dieser ist ja schon am Limit.

Nichts anderes predigen wir dir ja auch schon die ganze Zeit.
Find ich Prima dass der Thread doch noch zu einem Ergebnis gekommen ist 
das beide Seiten so unterschreiben können!

von P. M. (o-o)


Lesenswert?

Moby A. schrieb:
> An dieser Stelle verschätzt sich der Autor meiner Meinung nach gewaltig.

Deine Meinung? Also dieses wackelige Ding, dessen gesamtes Fundament aus 
ein bisschen Assemblerprogrammierung besteht? Dieses Machwerk, in das du 
kein Wissen von erfahrenen Leuten einfliessen lässt? Ja, diese Meinung 
muss ja Gewicht haben.

von (prx) A. K. (prx)


Lesenswert?

le x. schrieb:
>> für viele viele KB Code im Prinzip überlegen: Nämlich dann, wenn man mit
>> Übung, Vorbereitung und System drangeht ;-)
>
> Ich folgere mal daraus:
> "Wenn man NICHT mit ÜVS rangeht ist ASM gegenüber C NICHT überlegen."

Diese Schlussfolgerung ist unzulässig.

von Le X. (lex_91)


Lesenswert?

A. K. schrieb:
> Diese Schlussfolgerung ist unzulässig.

Wo liegt mein Denkfehler?

Pseudocode:
1
WENN (ÜVS == TRUE)
2
DANN (ASM > C)

Darf ich für den (nicht explizit vorhandenen) SONST-Pfad nicht (ASM < C) 
annehmen?
(OK, eigentlich ASM <= C)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

le x. schrieb:
> Wo liegt mein Denkfehler?

Dass die abstrakte Maschine namens „Moby AVR“ nicht nach den Regeln
der Logik arbeitet.

von Werner P. (Gast)


Lesenswert?

Du hast die Zeile 42 überlesen.

if (das_passt_mir_nicht_in_den_kram) printf("verloren");

EDIT: Damit Moby das versteht. Kann das jemand nach ASM übersetzen?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

le x. schrieb:
> - das Telegram ist wie folgt zu codieren (die Bits sind im Folgenden
>   durchnumeriert, 0-23. Das Telegram soll LSB first ausgegeben werden)
>     - Bits 0 -  7: AINP-CHANNEL1, niederwertige 8 Bits
>     - Bits 8 - 15: AINP-CHANNEL2, niederwertige 8 Bits
>     - Bit 16 - 17: AINP-CHANNEL1, höherwertige 2 Bits
>     - Bit 18 - 19: AINP-CHANNEL2, höherwertige 2 Bits
>     - Bit 20: DINP1-LOW
>     - Bit 21: DINP2-LOW
>     - Bits 22-23: Checksumme über das Datentelegram
> - die Checksumme ist wie folgt zu bilden: alle gesetzten Bits werden in
>   einem Modulo-4-Zähler gezählt, dessen LSB als Bit 22 ausgegeben wird

Das ist in C auch nur eine einfache Zuweisung, bei dem man sich einfach 
den passenden Datentyp anlegt:
1
typedef union {
2
    uint32_t u32Val;
3
    uint8_t  u8Val[4];
4
    struct {
5
        uint8_t uAdc1;
6
        uint8_t uAdc2;
7
        uint8_t uAdc12:2;
8
        uint8_t uAdc22:2;
9
        uint8_t bPin1:1;
10
        uint8_t bPin2:1;
11
        uint8_t uCRC:2;
12
    };
13
} tVal;
14
15
// Das Demo mit 2 Arten der CRC Berechnung:
16
void SetVal(tVal* aVal, uint16_t uAdc1, uint16_t uAdc2, uint8_t bP1, uint8_t bP2)
17
{
18
    // die Werte bestücken
19
    aVal->uAdc1 = uAdc1 & 0xFF;
20
    aVal->uAdc2 = uAdc2 & 0xFF;
21
    aVal->uAdc12 = (uAdc1 >> 8) & 0x03;
22
    aVal->uAdc22 = (uAdc2 >> 8) & 0x03;
23
    aVal->bPin1 = bP1 ? 1 : 0;
24
    aVal->bPin2 = bP2 ? 1 : 0;
25
    uint16_t iCRC = 0;
26
    // CRC Berechnen anhand Tabelle:
27
    const uint8_t CRCTAB[] = {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4};
28
    iCRC  = CRCTAB[aVal->u8Val[0] & 0x0F];
29
    iCRC += CRCTAB[(aVal->u8Val[0] >> 4) & 0x0F];
30
    iCRC += CRCTAB[aVal->u8Val[1] & 0x0F];
31
    iCRC += CRCTAB[(aVal->u8Val[1] >> 4) & 0x0F];
32
    iCRC += CRCTAB[aVal->u8Val[2] & 0x0F];
33
    iCRC += CRCTAB[(aVal->u8Val[2] >> 4) & 0x03];
34
    aVal->uCRC = iCRC % 4;
35
    // CRC Berechnen mit einer Schleife:
36
    iCRC = 0;
37
    for (uint16_t i = 0; i <= 21; i++) {
38
        if ((aVal->u32Val >> i) & 1)
39
            iCRC++;
40
    }
41
    aVal->uCRC = iCRC % 4;
42
}

Senden braucht man nur noch die 3 Bytes aVal->u8Val[n] auf serielle 
Schnittstelle.

PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.

: Bearbeitet durch User
von Operator S. (smkr)


Lesenswert?

le x. schrieb:
> A. K. schrieb:
>> Diese Schlussfolgerung ist unzulässig.
>
> Wo liegt mein Denkfehler?

https://de.wikipedia.org/wiki/Kontraposition

von Le X. (lex_91)


Lesenswert?

Operator S. schrieb:
> le x. schrieb:
>> A. K. schrieb:
>>> Diese Schlussfolgerung ist unzulässig.
>>
>> Wo liegt mein Denkfehler?
>
> https://de.wikipedia.org/wiki/Kontraposition

Tja schade, ich da wollt ich den Thread friedlich beenden, aber das wird 
wohl nix...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

le x. schrieb:
> Tja schade, ich da wollt ich den Thread friedlich beenden, aber das wird
> wohl nix...

In C würde man ja zum Beenden der Endlosschleife einfach ein
1
break;

schreiben. ;-)

von Operator S. (smkr)


Lesenswert?

le x. schrieb:
> Tja schade, ich da wollt ich den Thread friedlich beenden, aber das wird
> wohl nix...

Beenden? Aber... was soll ich dann mit meiner ganzen frei werdenden Zeit 
machen? Und Moby erst!

von Stefan K. (stefan64)


Lesenswert?

Markus M. schrieb:
> PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.

VERLOREN!
Der Code DARF nicht auf einem mc ausserhalb von Mobys Universum laufen!

Gruß, Stefan

von Matthias L. (Gast)


Lesenswert?

Werner P. schrieb:
> EDIT: Damit Moby das versteht. Kann das jemand nach ASM übersetzen?
1
db MSG  'verloren'
2
3
Loop:
4
LDI    Z, MSG
5
CALL   Sende_String_in_Z
6
JMP    Loop




>PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.

Wie ineffizient ist das denn

von Thomas E. (thomase)


Lesenswert?

Matthias L. schrieb:
> Wie ineffizient ist das denn

Das ist egal. Auf einem STM32 laufen keine typischen 
8-Bit-MSR-Anwendungen.

mfg.

von Gu. F. (mitleser)


Lesenswert?

Operator S. schrieb:
> Beenden? Aber... was soll ich dann mit meiner ganzen frei werdenden Zeit
> machen? Und Moby erst!

Endlich C lernen.

von (prx) A. K. (prx)


Lesenswert?

le x. schrieb:
> Darf ich für den (nicht explizit vorhandenen) SONST-Pfad nicht (ASM < C)
> annehmen?

Aus einer falschen Prämisse folgt nichts.
Bei WENN a DANN b:
  a:true dann b:true
  a:false dann b:any

von Carl D. (jcw2)


Lesenswert?

Matthias L. schrieb:
> Werner P. schrieb:
>> EDIT: Damit Moby das versteht. Kann das jemand nach ASM übersetzen?
>
>
1
> db MSG  'verloren'
2
> 
3
> Loop:
4
> LDI    Z, MSG
5
> CALL   Sende_String_in_Z
6
> JMP    Loop
7
>
>
>
>
>
>>PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.
>
> Wie ineffizient ist das denn

Falsch, muß auf Tiny13 laufen und der braucht kein CALL, weil RCALL +-2k 
abdeckt und hat es deshalb auch nicht.

Ob Moby es kennt? Bei entsprechender ÜVS (oder war es ÜSV?) kann man 
auch auf xMega ohne CALL auskommen. Man muß ja nur Caller und Callee 
richtig positionieren.
Zudem: CALL braucht 4 Bytes statt den zweien des RCALL's. Damit werden 
der Nachwelt wertvolle unbenutzte Flash-Zellen vorenthalten.

Wenn mal jemand unter Unweltschutzaspekten den Begriff "Verschwendung" 
untersucht, dann kommen unbenützte Speicherbereiche schlecht weg.

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Gu. F. schrieb:
> Endlich C lernen.

Das würde er gerne. Hat er auch schon probiert. Aber C lässt sich von 
ihm nicht lernen. Programmiersprachen haben auch ihren Stolz.

mfg.

von Matthias L. (Gast)


Lesenswert?

Carl D. schrieb:
> Wenn mal jemand unter Unweltschutzaspekten den Begriff "Verschwendung"
> untersucht, dann kommen unbenützte Speicherbereiche schlecht weg.

Hihi genau. Und dank diesem Thread hier steht das auch ganz oben.

von Carl D. (jcw2)


Lesenswert?

Matthias L. schrieb:
> Carl D. schrieb:
>> Wenn mal jemand unter Unweltschutzaspekten den Begriff "Verschwendung"
>> untersucht, dann kommen unbenützte Speicherbereiche schlecht weg.
>
> Hihi genau. Und dank diesem Thread hier steht das auch ganz oben.

War ja nicht extrem ernst gemeint.
Aber etwas nutzlos zu produzieren, damit einer sich daran aufgeilt es 
nicht zu benutzen, ist doch leicht schräg, oder?

von Moby A. (moby-project) Benutzerseite


Lesenswert?

le x. schrieb:
> Tja schade, ich da wollt ich den Thread friedlich beenden, aber das wird
> wohl nix..

Das heißt, Du wirfst nach wenigen Stunden schon das Handtuch? Oh Gott. 
Ob mich daß bei Deinem Logik-Verständnis weiter oben überraschen sollte?
Na dann wenigstens Dankeschön für die (letzte) Live-Demo der 
Sinnlosigkeit jeglicher wiederholter "Spezifikation". Oder?

Markus M. schrieb:
> Senden braucht man nur noch die 3 Bytes aVal->u8Val[n] auf serielle
> Schnittstelle.
>
> PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.

Oh da tut ja doch noch einer was. Bis jetzt funzt dieses unvollständige 
Bruchwerk aber noch nirgendwo. Von konkreten Ressourcenverbrauchs-Fakten 
ganz zu schweigen. Eine klassische serielle Schnittstelle wird von 
meinem Code auch nicht bedient.

P. M. schrieb:
> Also dieses wackelige Ding

Langsam machst Du mit Deinen kompetenten Beobachtungen Carl D. 
Konkurrenz...
Mein Code steht bombenfest, bewährt sich längst in der Praxis- aber Du 
machst mir nicht den Eindruck, daß Du Dich damit jemals befasst hast 
undoder ihn überhaupt verstehst. :-(

> kein Wissen von erfahrenen Leuten einfliessen lässt

Lass das mal in Deine C-Fassung einfließen. Da werd ich aber lange 
warten. Dann dann zeigt sich schnell wer hier wen belehren müsste ;-)

von Ralf G. (ralg)


Lesenswert?

Moby A. schrieb:
> Das heißt, Du wirfst nach wenigen Stunden schon das Handtuch? Oh Gott.

Unglaublich! :-)
Da hängt er schon seit einer Ewigkeit in den Seilen und trotzdem kommt 
immer sowas wie 'Hat ja gar nicht weh getan!'. Da wird der Kampf 
sicherlich über 2000 Runden gehen.

Wobei...: Der Ringrichter wettet auf den Verlauf des Kampfes?! ;-/

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Clemens M. schrieb:
> Also wenn jetzt schon Bedingung ist, nur 2 Byte Stackverbrauch zu
> haben ist Moby irgendwie wirklich verzweifelt....

Du solltest besser am RAM-Bedarf eines C-Compilers verzweifeln. Scheint 
ja ein fetter Pferdefuß des fetten C zu sein. Beim ganzen Rest Deiner 
konstruierten Jammerei erinnerst Du mich an einen gewissen Sheeva ;-)

Michael K. schrieb:
> Nutzloses RAM zu initialisieren

Kein Problem Michael. Das und die Sleep Geschichte wird noch 
rausgestrichen! Für den Vergleich hier ist das überflüssig. Da wird 
der Volkszorn der Trolle, Stänkerer und verkrachten C-Existenzen zwar 
hier wieder hochkochen, jeder einigermaßen neutrale und rationale 
Beobachter wird mir aber zugestehen, daß nur gleiche mit gleicher 
Funktionalität verglichen werden sollte und eine Ram- bzw. Sleep 
Initialisierung nicht auf der Agenda äh "Spezifikation" steht. Macht 
dann nach Adam Riese weniger als 200 Bytes verbrauchter Flash ;-)

> Mit Verlaub.
> Das ist vollkommener Müll.

Du meinst weil klar ist, daß man es in C nicht kürzer gebacken bekommt?

> Die unterste Schmerzgrenze für Sensor  Aktor Knoten sehe ich bei
> adressierbaren Master  Slave Feldbussen mit min. 16 Teilnehmern.

Bist Du von der Industrie? Dann wär mir alles klar. So einer muß die 
überteuerten Preise dort irgendwie rechtfertigen. Schenk Dir das. Geht 
alles viel simpler, viel billiger ;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Ralf G. schrieb:
> Unglaublich!

... sind meistens Dinge, deren Zustandekommen man falsch einschätzt ;-)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

A. K. schrieb:
> Hab auch schon an ELIZA gedacht.

Da ist was dran ;-)
So wie ein großer Teil der C-Überzeugungstäter hier konstant weg von den 
unangenehmen Fakten meines Projekts driftet müssen diese Leute konstant 
auch wieder zurück zu den wunden Punkten (=Ressourcenverbrauch) geführt 
werden. Da brauchts Eliza-gleiche Geduld ;-)

Johann L. schrieb:
> Bedeutet also konkret: Wenn irgend jemand ein (Assembler)-Programm
> findet, dass 1 Byte kürzer ist als deines, hat deine Lösung absolut und
> komplett versagt?

Wer wird denn hier von Versagen reden? Der Vorteil simpler Codierung 
ohne viel Bürokratie bleibt Asm dann immer noch. Nur die 
Ressourcen-Geschichte hätte sich dann (für mich) erledigt. Du redest da 
aber von Wunschträumen ;-)

: Bearbeitet durch User
von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> le x. schrieb:
>> Tja schade, ich da wollt ich den Thread friedlich beenden, aber das wird
>> wohl nix..
>
> Das heißt, Du wirfst nach wenigen Stunden schon das Handtuch? Oh Gott.
> Ob mich daß bei Deinem Logik-Verständnis weiter oben überraschen sollte?
> Na dann wenigstens Dankeschön für die (letzte) Live-Demo der
> Sinnlosigkeit jeglicher wiederholter "Spezifikation". Oder?
>
> Markus M. schrieb:
>>
>> PS: der Code funzt nicht nur auf meinem STM32, sondern auch auf dem AVR.
>
> Oh da tut ja doch noch einer was. Bis jetzt funzt dieses unvollständige
> Bruchwerk aber noch nirgendwo. Von konkreten Ressourcenverbrauchs-Fakten
> ganz zu schweigen. Eine klassische serielle Schnittstelle wird von
> meinem Code auch nicht bedient.
>
> P. M. schrieb:
>> Also dieses wackelige Ding
>
> Langsam machst Du mit Deinen kompetenten Beobachtungen Carl D.
> Konkurrenz...
> Mein Code steht bombenfest, bewährt sich längst in der Praxis- aber Du
> machst mir nicht den Eindruck, daß Du Dich damit jemals befasst hast
> undoder ihn überhaupt verstehst. :-(
>
>> kein Wissen von erfahrenen Leuten einfliessen lässt
>
> Lass das mal in Deine C-Fassung einfließen. Da werd ich aber lange
> warten. Dann dann zeigt sich schnell wer hier wen belehren müsste ;-)

Moby, falls du das Theater hier selber ernst nehmen solltest.:

Du bist der Einzige!
Ja, DER EINZIGE.

Welche Motivation sollte ein Leser hier haben, in seiner Freizeit ein 
Programm zu schreiben, welches er niemals für irgend etwas einsetzen 
wird? Ja, warum sollte er das wohl tun? Nur um über deine Stöckchen zu 
springen? Deinen Ego Trip weiter anzuheizen?

Du bietest weder eine spannende Herausforderung noch sinnvolle Regeln. 
Dein beabsichtigter Ram-und-Flash Kontest ist wenig Anspruchsvoll, um 
nicht zu sagen einfach nur lächerlich. Du scheinst das nicht zu merken - 
als Einziger.
Ich und auch kein anderer möchten dir den Erfolg deines privates 
Projektes und seine Funktion in Abrede stellen. Es ist und bleibt ein 
tolles Gefühl, selbst etwas auf die Beine gestellt und zum Laufen 
gebracht zu haben. Doch stellt sich dann niemand hin und schwört auf die 
Überlegenheit seiner Programmiermethode.
Wenn du Interesse an einer vergleichenden Betrachtung gehabt hättest, 
wärest du den Bitten nach den Specs deines Projektes mit mehr Eifer 
nachgekommen und hättest nicht auf deinen ASM Code verwiesen. Wissen wir 
denn, ob der deine Specs überhaupt erfüllt? In der Schule haben wir 
gelernt, dass jede Aufgabe über die Aufgabenstellung formuliert wird. Je 
klarer die ist, umso weniger Streit gibt es bei der Interpretation der 
Ergebnisse.
Lange Rede..

Wenn du wirklich Interesse hast, dann komm mit etwas vernünftigen, etwas 
worüber sich die sach- und fachliche Auseinandersetzung für alle Seiten 
hier lohnt.
Deinen Kinderspielchen sind hier alle schon längst erwachsen. Mir 
scheint es, als ob selbst die fachliche Beurteilung der hier schon 
gebotenen Lösungen oder Teillösungen deinen Horizont meilenweit 
überschreitet. Zu keinem Ansatz hast du jemals Stellung bezogen. Warum 
sollte also jemand etwas liefern? Wozu?
Du erwartest nur die nackte Programmgröße. Ich habe den Eindruck, dass 
du damit im falschen Forum gelandet bist.

Wenn du das gleich wieder als Resignation vor der Aufgabe, Versagen der 
C-Fraktion, Üblegenheit deiner Progammierkunst oder dergleichen 
interpretieren wirst,.. es ist alles nur in deinem Kopf so..
..und ich programmiere auch fast alles in ASM - noch, weil ich mehr und 
mehr von der Überlegenheit von C überzeugt bin und es deshalb lerne.

von Ralph S. (jjflash)


Lesenswert?

Nachdem ich die Antwort auf alle möglichen Fragen gefunden habe, hat man 
einfach die Fragen geändert...

Nachdem ich alle Lösungen zu einem Problem gefunden habe, hat man das 
Problem geändert.

Nachdem es keine Probleme mehr gab ... bin ich wieder zur 
Maschinensprache zurück gekehrt (  smile  nein, bin ich nicht 
grundsätzlich ).

Das wäre jetzt so, als würde man mir sagen: Hey, schreibe absichtlich 
wieder schier unwartbare Programme.

Witzig ist schlicht: alte Programmteile (egal ob in Pascal, Delphi oder 
C) wie bspw. Interpolationsfunktionen, "Linearisierungen" von NTC 
Widerständen, Funktionsparser konnte ich von meinen uralten zum Teil aus 
C/PM Zeiten stammende Routinen relativ gut nach C portieren. Die meisten 
Assemblerfunktionen nicht (okay, in Wirklichkeit war mir der Aufwand zu 
groß und ich habs lieber neu geschrieben).

Es ist für mich sowas von unglaublich, dass man sich auf das Niveau von 
Herrn M. herunterziehen lässt und seine "Anforderungsliste" übernimmt wo 
es doch hunderttausende Vorzüge einer höheren Sprache (egal welche) 
gegenüber ASM gibt. Wie kann man nur so verbohrt sein, seine 
"Lieblingssprache" auf so extrem wenige (und sorry, wirklich relativ 
triviale) Anwendungen zu begrenzen?

Die Welt... besteht nicht nur aus (von Herrn M. definierten) 8 Bit 
Anwendungen.

Ein bestes Beispiel: ich bin hoch fasziniert von einem Mitglied hier, 
der einen Softwaresynthesizer auf einem ATmega (und das in meiner 
Meinung nach guten Qualität) hinbekommen hat (ehrliche Hochachtung 
hierfür).

Viele Teile des Syntesizers sind in C geschrieben und nur die wirklich 
zeitkritischen in Assembler.

Ich war/bin wirklich davon fasziniert. Dieses Teil Lehrlingen gezeigt 
können diese meine Faszination (eigentlich zu Recht) nicht verstehen: 
"Herr xyz, das ist ja schön und gut, aber auf unseren STM Nucleoboards 
benötigt es hierfür keine Maschinensprache).

Was erwiedert man einer solchen Aussage? Nichts, denn sie haben schlicht 
recht.

Würde ich ein Spielzeug entwerfen, dass ich was weiß wieviele 1000 mal 
verkaufen würde, würde der Preis vllt. eine Rolle spielen und deshalb 
wohl hierfür ein AVR eingesetzt werden, aber selbst in diesem Falle ist 
der Hauptanteil in C geschrieben.

Ich würde gerne mal einen Softwaresynthesizer von Herrn M. sehen, der 
komplett in ASM gemacht ist !!!

Hier wird extrem viel ohne Beweise behauptet und jetzt lasse ich mich 
auf das gleiche ein:

Ich erkenne an, dass ASM so viel flexibler und einfacher ist, wenn Herr 
M. einen Syntesizer schreibt (das sind jetzt Specs) die:

- min. 4 stimmige unterschiedliche Instrumente spielen können
- eine Mididatei die auf einem PC in ein beliebiges proprietäres Format 
gewandelt werden dürfen und einem AVR über ein Nachladen von einer SD 
Karte zugeführt werden
- der Rauschabstand nicht kleiner als 50 dB betragen darf (ich hoffe 
dass Herr M. weiß was das ist)

Ich (und das nehme ich mir heraus weil ICH und nicht Herr M. die Specs 
bestimmt) äußere: das ist eine 8 Bit Anwendung weil es auf einer 8 Bit 
MCU läuft !

ASM hat gewonnen, wenn er dieses in 3 Wochen zum Laufen gebracht hat !

Ich verschärfe jetzt nicht in dem ich verlange, dass er den Code den er 
erstellt hat nun auf einer anderen Plattform zum Laufen bringt (denn ich 
will den auf AVR funktionierenden Code nicht nach STM32 portieren, 
glaube aber, dass ich wohl doch in der Lage wäre das auch auf einem 
Nucleo hin zu bekommen).

( ich glaube ich kann jetzt schon ein höhnisches Gelächter von Herrn M. 
hören und ich glaube ich kann auch schon die Gebetsmühlenartig 
vorgetragenen unsinnigen "Argumente" und "Forderungen" hören ).

Was ich wirklich nicht glauben kann ist, dass ich mich hinreisen lasse 
und hier einen Kommentar schreibe. Aber irgendwie ist das wie mit der 
Maschinensprache: Manche Dinge faszinieren ohne wirklich erkennbaren 
Grund ... und hier ist es die Ignoranz).

Wenn Herr M. kein "Projekt" (ich sage mal, dass eine Minisensorplatine 
einfach kein "Projekt" ist) veröffentlichen will (weil uns das ja 
angeblich nicht "interessiert"), dann soll er doch mal wenigstens 
erzählen, welches seiner Projekte, die er ja schon erarbeitet hat, 10 
KByte groß sind (Hex-File) und was die jetzt alles in allem können !

Was .... wurde denn in so großer Menge schon realisiert und in welcher 
Zeit?

Warum richten sich die "Diskutanten" nach den Anforderungen von Herrn 
M., warum stellen sie nicht ihre eigenen Specs ?

Hier im Forum wimmelt es nur so von wirklichen Schätzen bei denen sich 
manche Programmierer in C das Hirn verrenkt haben (smile, "nur" um etwas 
in den nächstkleineren Controller zu bekommen)... Ich will sehen wie 
Herr M. das schafft.

Immer dann, wenn gerechnet werden muß, immer dann wenn floating point 
ins Spiel kommt, spätestens dann wird es mit ASM kritisch.

Gute Nacht

von Ralph S. (jjflash)


Lesenswert?

Markus M. schrieb:
> ..und ich programmiere auch fast alles in ASM - noch, weil ich mehr und
> mehr von der Überlegenheit von C überzeugt bin und es deshalb lerne.

... es geht nicht darum, was "überlegen" ist, es geht darum, mit welchem 
Aufwand ein Problem bewältigt werden kann.

Entwicklerzeit = Aufwand.

Eliminiert ein geringerer Hardwarepreis einen höheren Entwickleraufwand, 
wird eine preiswertere Hardware verwendet, ansonsten eben nicht !

Preis Reichelt (okay, nicht WIRKLICH zwingend Bezugsquelle Nr. 1):

ATtiny13 SOIC (1k Byte Flash / 64 Byte RAM)   => 0,86 Euro
ATtiny85 SOIC (8k Byte Flash / 512 Byte RAM)  => 1,30 Euro

Um wieviel länger darf ich da entwickeln, dass da noch etwas in den 
Tiny13 passt ?

von Gerhard O. (gerhard_)


Lesenswert?

Also ehrlich, wäre es nicht mal an der Zeit mal an die frische Luft zu 
gehen und einzuatmen und die schöne Natur zu bewundern. Mal Schifahren 
zu gehen oder Eislaufen, oder sonst irgendetwas, aber nur nicht mit der 
Elektronik verbunden. Da bekommt dann gleich eine andere Einstellung.

Wenn man den ganzen Tag vor dem Monitor sitzt, verblödet man doch fast 
und frisst sich leicht in einer Furche fest.

Gut gemeint,
Gerhard

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Der Vorteil simpler Codierung
> ohne viel Bürokratie bleibt Asm dann immer noch. Nur die
> Ressourcen-Geschichte hätte sich dann (für mich) erledigt. Du redest da
> aber von Wunschträumen ;-)

Der Vorteil der simplen Codierung ist für dich, dass du deine simplen 
Programme auch ohne eine Hochsprache zu lernen gebacken bekommst.

Moby A. schrieb:
> So wie ein großer Teil der C-Überzeugungstäter hier konstant weg von den
> unangenehmen Fakten meines Projekts driftet müssen diese Leute konstant
> auch wieder zurück zu den wunden Punkten (=Ressourcenverbrauch) geführt
> werden.

Unangenehm ist lediglich dein infantiles Getue, weil nun nienamd mehr 
mit dir spielen will.

Der Resourcenverbrauch in C ist in erster Line von dem abhängig, der vor 
dem Rechner sitzt. Das ist in ASM nicht anders.
Falls du dir den Gefallen tust, und mal bischen C lernen würdest, wäre 
das deine erste Erkenntnis.

Ich habe übrigens mal ähnlich verbockt auf C geschimpft. Grund war mein 
Frust über die "kryptische Syntax". Ja, sicher wäre es einfacher 
gewesen, ich hätte vor 30 Jahren damit begonnen. Stattdessen gab es da 
auch für mich Z80 in ASM und OP-Code.

Das erste, was ich nach dem Kompilieren meiner C-Versuche mache, ist das 
Untersuchen der ASM Ausgabe des Compilers. Und ehrlich, ich war 
überrascht wie kurz und elegant der Compiler übersetzt. Tut er es mal 
nicht, dann hat das seinen Grund im Quellcode. Er sieht dann etwas, was 
ich übersehen, oder zumindest anders gemeint habe. Aber mit ÜVS wird das 
ASM Listing immer kürzer und knackiger.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Mal Schifahren zu gehen oder Eislaufen

Hab ich letztens probiert.  Bin ziemlich blöd auf den Hinterkopf
gefallen dabei. :o/

Ich bevorzuge doch lieber Fortbewegungsmittel mit ordentlichen Bremsen. 
:)

Viele Grüße nach Kanada, ist vermutlich kühler dort als hier.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> Die Welt... besteht nicht nur aus (von Herrn M. definierten) 8 Bit
> Anwendungen.

Da hast Du doch Recht!
Nur für diese rede ich aber hier.
Es sind aber immer noch Millionen...
Z.B. im großen Feld Smart Home.

Markus M. schrieb:
> Du bist der Einzige!
> Ja, DER EINZIGE.

Und Du meinst, eine solche Feststellung hätte irgend einen Wert als 
fachliches Argument?
Mich beeindruckt das nicht, das Ablenkungs-Theater von der von mir 
demonstrierten Asm-Effizienz hat aber einen gewissen Unterhaltungswert 
;-)

> Welche Motivation sollte ein Leser hier haben, in seiner Freizeit ein
> Programm zu schreiben, welches er niemals für irgend etwas einsetzen
> wird? Ja, warum sollte er das wohl tun?

"Programm" ist erstens schonmal arg übertrieben.
Zweitens muß das niemand tun. Wer aber meinen Aussagen zu den 
Ressourcenvorteilen von Asm überzeugend wiedersprechen will wird nicht 
umhinkommen, dies an meinem bereits fertigen Projektchen durch die 
Fakten einer C-Fassung zu belegen. So ein 200 Byte-Kaliber sollte für 
die behauptet hochexpertiösen Protagonisten hochproduktiven C's wirklich 
kein Problem sein ;-)

von Gerhard O. (gerhard_)


Lesenswert?

Jörg W. schrieb:
> Gerhard O. schrieb:
>> Mal Schifahren zu gehen oder Eislaufen
>
> Hab ich letztens probiert.  Bin ziemlich blöd auf den Hinterkopf
> gefallen dabei. :o/
Eislaufen ist heimtückischer wie Schifahren. Beim Schifahren hat man 
viel mehr Möglichkeiten zur Korrektur.
>
> Ich bevorzuge doch lieber Fortbewegungsmittel mit ordentlichen Bremsen.
Da hast Du auch wieder recht.
> :)
>
> Viele Grüße nach Kanada, ist vermutlich kühler dort als hier.

Nicht zu schlimm. Nur -6 Grad im Augenblick obwohl es in ein paar Tagen 
sehr viel kühler werden soll(-20). Mit dem ganzen Schnee ist einer 
weihnachtlichen Stimmung nichts im Wege gelegt. Schnee in den Bergen ist 
reichlich und die Schifahrer sind Happy.

Viele Grüße nach D,
Gerhard

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Der Vorteil der simplen Codierung ist für dich, dass du deine simplen
> Programme auch ohne eine Hochsprache zu lernen gebacken bekommst.

So simpel sind offensichtlich selbst 200 Byte Asm Programme nicht, sonst 
hätten wir längst eine reelle C-Vergleichsmöglichkeit auf dem Tisch ;-)
Und ja doch, Asm ist simpel! Da gibts bei 8-Bit MSR keinerlei 
Veranlassung auf Umständlicheres und Bürokratischeres und Komplexeres zu 
wechseln!
Das spricht für Asm!

> Unangenehm ist lediglich dein infantiles Getue, weil nun nienamd mehr
> mit dir spielen will.

Asm ist vergleichsweise infantil im Vergleich zu C.
Man kann auch sagen simpler ;-)

> Der Resourcenverbrauch in C ist in erster Line von dem abhängig, der vor
> dem Rechner sitzt. Das ist in ASM nicht anders.

Klar gibts auch diese Abhängikeit.
Die interessiert hier aber nicht.
Hier gehts um objektive Mängel von Hochsprache.
Dokumentiert in sovielen C-Problemthreads.
Um mal einen aktuellen aufzugreifen:
Beitrag "Einstieg in C - komische Fragen"

> Falls du dir den Gefallen tust, und mal bischen C lernen würdest, wäre
> das deine erste Erkenntnis.

Die ersten "Erkenntnisse" sind in obigem Thread wunderschön beschrieben. 
Ich komm geradezu ins Schwärmen ;-)

> Das erste, was ich nach dem Kompilieren meiner C-Versuche mache, ist das
> Untersuchen der ASM Ausgabe des Compilers.

Das brauch ich nicht. Das hab ich zum Glück selber in der Hand.

> Und ehrlich, ich war
> überrascht wie kurz und elegant der Compiler übersetzt. Tut er es mal
> nicht, dann hat das seinen Grund im Quellcode.

Eleganz käme frühestens dann zum Tragen, wenn die Anzahl der Register 
nicht mehr ausreicht. Das ist mit Übung, Vorbereitung und System noch 
für viele viele KB AVR Code bei 8-Bit MSR kein Thema!

> Aber mit ÜVS wird das
> ASM Listing immer kürzer und knackiger.

Nur leider nicht so knackig wie mit pure Asm ;-)
Von den vielen richtig zu bedienenden Stell- und Optimierschrauben in C 
ganz abgesehen.

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> So ein 200 Byte-Kaliber sollte für
> die behauptet hochexpertiösen Protagonisten hochproduktiven C's wirklich
> kein Problem sein ;-)

Ist es auch nicht.
Aber die beschäftigen sich lieber mit ernsthafteren Sachen.
Und "Resourcenverbrauch" verstehen die/wir nicht als Flashverbrauch. 
Denn Flash verbraucht nicht. Er ist nach wie vor vorhanden. Und je 
besser er genutzt wird, um so besser ist die Resourcennutzung. Und um 
die geht es.

Die Resourcen "Flash" und "SRAM" durch maximale Kastration der Programme 
nur unzureichend zu nutzen, stellt eine reine Resourcenverschwendung da. 
Warum möchtest du einen professionellen Softwareersteller dazu bewegen?

Das Ergebnis wird weder besser noch schlechter, wenn es 2 Byte mehr oder 
weniger Speicher belegt. Das ist der Punkt!

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Die Resourcen "Flash" und "SRAM" durch maximale Kastration der Programme
> nur unzureichend zu nutzen, stellt eine reine Resourcenverschwendung da.

Du hast nicht verstanden, daß es mir um die prinzipiellen Vorteile von 
Asm geht. Was konkret wie in der Praxis genutzt werden kann steht auf 
einem anderen Blatt. Wenn Asm aber weniger Ressourcen erfordert (mit 
ÜVS) ist das doch nur gut. Wenn die Programmierung mit der bloßen 
Anwendung eines simplen Instruktionssatzes und dem Datenblatt des MC 
geschehen kann umso besser.

> Warum möchtest du einen professionellen Softwareersteller dazu bewegen?

Irrtum. Ich möchte eigentlich selber überzeugt werden. Das ist hier 
aber momentan auf einem ganz ganz schlechten Weg ;-)

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Asm ist vergleichsweise infantil im Vergleich zu C.
> Man kann auch sagen simpler ;-)

Das darf und kann nur jemand beurteilen, das beide Sprachen 
beherrscht.

Schon aus meiner Sicht ist deine Aussage falsch.

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Wenn die Programmierung mit der bloßen
> Anwendung eines simplen Instruktionssatzes und dem Datenblatt des MC
> geschehen kann umso besser.

Und genau das macht der C-Kompiler. Je nach Optimierungsstufe mal mit 
Schwerpunkt Codelänge oder Ausführungsgeschwindigkeit.

Moby A. schrieb:
>> Warum möchtest du einen professionellen Softwareersteller dazu bewegen?
>
> Irrtum. Ich möchte eigentlich selber überzeugt werden. Das ist hier
> aber momentan auf einem ganz ganz schlechten Weg ;-)

Daran ist dein bisherriges Verhalten nicht ganz unursächlich.
Mein Rat: lerne ein bischen C und überzeug dich selbst. Dass du hier 
professionelle Hilfe bekommen kanst, weißt du sicherlich auch. Du wirst 
sehen, welch wunderbar kurzen und knackigen Code der Compiler produziert 
bzw produzieren kann. Damit kannst du deine ASM Kenntnisse sogar noch 
weiter ausbauen.
Und der Aufwand, das Programm nach deinen Wünschen umzugestalten ist 
weitaus geringer als auf ASM Ebene. Das ist für mich ein entscheidender 
Vorteil. Diesen bezahlst du aber keineswegs mit mehr Overhead oder 
ähnlichem.
Vlt bringst du ja auch C nur in irgend einer Hinsicht mit Bascom in 
Verbindung und beziehst daraus deine Vorurteile(?)

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Das darf und kann nur jemand beurteilen, das beide Sprachen beherrscht.

Das kannst Du gern so festlegen.
Mit C durfte ich durchaus schon intensiv Bekanntschaft schließen. Viel 
aussagekräftiger sind aber entsprechende Problemthreads hier, wo mit 
viel Erfahrung noch jeder Haken der Hochsprache zum Vorschein kam. Du 
mußt doch nicht glauben, daß die Vorteile von C (z.B.beim Rechnen, beim 
Handling größerer Datenmengen) mit Nix erkauft werden...
Die allerbeste Beurteilung der C-"Vorzüge" aber ist, daß sich hier 
bislang keiner der sonst so sprachgewaltigen Experten imstande sieht, 
ein kleinwenig Funktionalität in C zu coden. Natürlich weiß ich warum 
;-)

Mit "lerne ein bischen C" hast Du bei mir keine Chance.
Da will ich schon mehr sehen!

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Moby A. schrieb:
> An dieser Stelle verschätzt sich der Autor meiner Meinung nach gewaltig.
>
> Deine Selbstüberschätzung ist einfach unübertroffen. :-)

Sollte mich das jetzt von irgendwas überzeugen?
Warum gehst Du nicht darauf ein was ich sagte?
Vielleicht, weils richtig war ?  ;-)

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Wenn die Programmierung mit der bloßen
> Anwendung eines simplen Instruktionssatzes und dem Datenblatt des MC
> geschehen kann umso besser.

Noch was..

Geht es um das initialisieren der Peripherie, das setzen von Registern, 
das Hin- und Herschieben von Registerinhalten, um Bitmanipulationen, 
dann nehmen sich C und Hand-ASM nichts.

Wenn dem Controller aber eswas "Grips" eingehaucht werden soll, wenn 
Berechnungen, die über einfachste Additionen hinausgehen implementiert 
werden sollen, wenn skalierbare Datenstrukturen angelegt werden müssen, 
Statemaschinen her müssen, oder das Programm einfach nur sehr 
umfangreich wird, dann ist der Compiler in jeder Beziehung besser. Ihn 
zu schlagen würde - wenn es überhaupt möglich wäre -  einen enormen 
Zeitaufwand verursachen.
Ich sehe in ASM mittlerweile keinerlei Vorteile mehr. Vertrau dem 
Kompiler, kontrolliere seinen Output. Du wirst sehen, der verarscht dich 
nicht und macht auch nicht heimlich Dinge die du nicht willst.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Selbst eine Implementierung in C müsste
> notwendigerweise exakt den gleichen Assemblercode liefern, um akzeptiert
> zu werden.

Wie kommst Du auf diesen ausgemachten Blödsinn?
Hinter solchen Aussagen scheint doch die nackte Angst durch: Wenn wir 
unseren C-Compiler nicht zum gleichen Asm-Output bewegen können haben 
wir verloren!!! ;-)

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Natürlich weiß ich warum
> ;-)
>
> Mit "lerne ein bischen C" hast Du bei mir keine Chance.
> Da will ich schon mehr sehen!

Mit dieser Einstellung wirtst du das niemals sehen.

Moby A. schrieb:
> Du
> mußt doch nicht glauben, daß die Vorteile von C (z.B.beim Rechnen, beim
> Handling größerer Datenmengen) mit Nix erkauft werden...

Geglaubt wird in der Kirche ;-)

Die Vorteile werden nicht "erkauft". Sie resultieren aus der Fähigkeit 
des Compilers, den "Überblick" auch bei noch-so-großen Datenmengen nicht 
zu verlieren und jederzeit in wenigen Sekunden ein optimales Ergebnis zu 
liefern.

Moby A. schrieb:
> Die allerbeste Beurteilung der C-"Vorzüge" aber ist, daß sich hier
> bislang keiner der sonst so sprachgewaltigen Experten imstande sieht,
> ein kleinwenig Funktionalität in C zu coden. Natürlich weiß ich warum
> ;-)

Nein, du glaubst es nur zu wissen. Warum das so ist, habe ich oben 
dargestellt, und viele andere versuchen dir das auch klar zu machen.

N8

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Geht es um das initialisieren der Peripherie, das setzen von Registern,
> das Hin- und Herschieben von Registerinhalten, um Bitmanipulationen,
> dann nehmen sich C und Hand-ASM nichts.

Das ist richtig.
Das hatte ich ein paar Hundert Beiträge weiter oben auch schon 
festgestellt.


> Wenn dem Controller aber eswas "Grips" eingehaucht werden soll, wenn
> Berechnungen, die über einfachste Additionen hinausgehen implementiert
> werden sollen, wenn skalierbare Datenstrukturen angelegt werden müssen,
> Statemaschinen her müssen, oder das Programm einfach nur sehr
> umfangreich wird, dann ist der Compiler in jeder Beziehung besser

Das ist ebenfalls richtig.
Das hatte ich ein paar Hundert Beiträge weiter oben ebenfalls schon 
festgestellt.

> Ich sehe in ASM mittlerweile keinerlei Vorteile
> mehr.

Das ist falsch.
Denn Du unterschlägst mal eben Millionen MSR-Anwendungen, die eben keine 
aufwendigen Berechnungen und Datenstrukturen enthalten.

> Vertrau dem Kompiler, kontrolliere seinen Output. Du wirst sehen,
> der verarscht dich nicht und macht auch nicht heimlich Dinge die du
> nicht willst.

Dazu gilt es aber eine Bürokratie und Ineffizienz in Kauf zu nehmen, die 
für obige Anwendungen nicht zwingend sind.

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Klar gibts auch diese Abhängikeit.
> Die interessiert hier aber nicht.
> Hier gehts um objektive Mängel von Hochsprache.
> Dokumentiert in sovielen C-Problemthreads.
> Um mal einen aktuellen aufzugreifen:

Ach Moby..

Diese Abhängigkeit ist _das Entscheidende!_ Und sie ist der Grund für 
die sog. "Problemthreads"!! Sie resultieren nicht aus Unzulänglichkeiten 
des Compilers oder der Sprache C!

Na klar hat man als Anfänger noch nicht den Überblick über alles!! Ja, 
das ist in ASM alles einfacher, weil da kein Compiler zwischengeschaltet 
ist.

Mit zunehmenden Lernerfolg wird man aber auf genau diese "Probleme" 
sensibilisiert. Das Denken nimmt einem der Compiler nicht auch noch ab! 
Und so weit, dass der Compiler weiß was der Mensch davor gemeint hat, 
oder gar Kommentare liest, soweit sind wir noch nicht! Was erwartest du 
eigentlich?

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Dazu gilt es aber eine Bürokratie und Ineffizienz in Kauf zu nehmen, die
> für obige Anwendungen nicht zwingend sind.

Beweise das an konkreten Beispielen und stelle die Nachteile in 
jeglicher Hinsicht nachvollziehbar dar.
Definiere den Begriff Nachteil, bewerte ihn in jeglicher Hinsicht.

Beweise, dass C überflüssigen Code produziert.

Belege die "Bürokratie" entsprechend mit Codebeispielen.

..oder schweige zu diesem Thema für immer.

von Markus M. (soarmaster)


Lesenswert?

Moby A. schrieb:
> Das ist falsch.
> Denn Du unterschlägst mal eben Millionen MSR-Anwendungen, die eben keine
> aufwendigen Berechnungen und Datenstrukturen enthalten.

Millionen...
Nenn uns doch bitte mal zehn.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Beweise das an konkreten Beispielen und stelle die Nachteile in
> jeglicher Hinsicht nachvollziehbar dar.

Du kannst gerne an meinem fertigen Beispiel Deine besseren 
C-Verbrauchsfakten demonstrieren ;-)

> Beweise, dass C überflüssigen Code produziert.

Obiges gelingt 1000 C-Experten nicht ;-)

> Belege die "Bürokratie" entsprechend mit Codebeispielen.

Dafür brauchts nichtmal Beispiele. Dafür langt schon ein Blick ins dicke 
C-Buch ;-)

> ..oder schweige zu diesem Thema für immer.

Das könnte Dir so passen ;-)
Nichtsdestotrotz wünsch ich Dir maximalen Erfolg mit Deinem C.

So, jetzt kannst Du guten Gewissens schlafen gehen. Du hast alles 
versucht ;-)

von Gerhard O. (gerhard_)


Lesenswert?

Kinder, Kinder! Wenn ihr so weitermacht, dann schafft Ihr es bald ins 
Guiness Book of Records zu kommen...

https://en.m.wikipedia.org/wiki/Guinness_World_Records

von Carl D. (jcw2)


Lesenswert?

Moby A. schrieb:
> Jörg W. schrieb:
>> Selbst eine Implementierung in C müsste
>> notwendigerweise exakt den gleichen Assemblercode liefern, um akzeptiert
>> zu werden.
>
> Wie kommst Du auf diesen ausgemachten Blödsinn?
> Hinter solchen Aussagen scheint doch die nackte Angst durch: Wenn wir
> unseren C-Compiler nicht zum gleichen Asm-Output bewegen können haben
> wir verloren!!! ;-)

Nö, ein gewisser Moby hat es genau so geschrieben. Das ist der Nachteil 
schriftlicher Statements. Sie können jederzeit zu 100% rekonstruiert 
werden. Das mit der nackten Angst (vor was auch immer) trifft eher dich.

> Obiges gelingt 1000 C-Experten nicht ;-)

Vielleicht haben die besseres zu tun, als einem Sturkopf sein ROM zu 
korrigieren. Das ist nämlich dein eigentliches Problem: ein zementiertes 
Weltbild, zumindest beim Thema "Programmieren von 
MobySpartRam-Anwendungen". Andere machen das nur, wenn es knapp wird.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Wie schafft ihr es eigentlich hier im Forum nächtelang Tinte zu 
verspritzen und dann am nächsten Morgen algorithmische Höchstleistungen 
zu leisten? Ich könnte das nicht.

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> Das wäre jetzt so, als würde man mir sagen: Hey, schreibe absichtlich
> wieder schier unwartbare Programme.

Da fehlt Dir einfach ÜVS ;-)

> Wie kann man nur so verbohrt sein, seine
> "Lieblingssprache" auf so extrem wenige (und sorry, wirklich relativ
> triviale) Anwendungen zu begrenzen?

Mein Beispiel ist zwar trivial, aber offensichtlich immer noch zu 
kompliziert. Größere Asm-Programme aus meiner Feder hätten erst recht 
keine Chance auf Vergleich- als einzig möglicher Beweismöglichkeit.

> Ich würde gerne mal einen Softwaresynthesizer von Herrn M. sehen, der
> komplett in ASM gemacht ist !!!

Das wirst Du aber nicht. Erstens, weil man entsprechende Software fertig 
kaufen kann und zweitens, weil so ein Unterfangen komplex, daten- und 
rechenintensiv ist. Damit ziemlich ungeeignet für Asm.

> Ich verschärfe jetzt nicht in dem ich verlange, dass er den Code den er
> erstellt hat nun auf einer anderen Plattform zum Laufen bringt (denn ich
> will den auf AVR funktionierenden Code nicht nach STM32 portieren,
> glaube aber, dass ich wohl doch in der Lage wäre das auch auf einem
> Nucleo hin zu bekommen).

Ich brauch meine Anwendungen nicht portieren.
Da langt ein AVR auf ewig. Vor allem wegen Asm ;-)

> ( ich glaube ich kann jetzt schon ein höhnisches Gelächter von Herrn M.
> hören und ich glaube ich kann auch schon die Gebetsmühlenartig
> vorgetragenen unsinnigen "Argumente" und "Forderungen" hören ).

Was Du so alles hörst.
Für Beiträge wie den Deinigen sollte ich mir wirklich mal ein 
Eliza-Programm zulegen, welches die Rahmenbedingungen meiner Aussagen 
für alle Neuankömmlinge permanent wiederholt.

> Immer dann, wenn gerechnet werden muß, immer dann wenn floating point
> ins Spiel kommt, spätestens dann wird es mit ASM kritisch.

Ja ja, das Rechnen wieder...
Hatte ich schon gesagt, daß mich bislang Floating Point und ähnliche 
schlimme mathematische Dinge verschont haben? Daß mir mein Smart Home 
automatisch zu Diensten ist muß irgend einen anderen Hintergrund haben 
;-)

von Gerhard O. (gerhard_)


Lesenswert?

Moby A. schrieb:
> Da fehlt Dir einfach ÜVS ;-)

Was bedeutet denn ÜVS schon wieder - Ihr mit euren Abkürzungen!

Wie soll man da am anderen Ende der Welt noch mitkommen...

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Carl D. schrieb:
> Nö, ein gewisser Moby hat es genau so geschrieben.

Na das zeig mir mal! Da bin ich aber jetzt gespannt!
Ich glaub ja Du willst mir irgendeine Deiner Aussagen oder 
Interpretationen unterschieben ;-)

> Vielleicht haben die besseres zu tun, als einem Sturkopf sein ROM zu
> korrigieren.

Ach so? Für viele windelweich faktenlose Beiträge hier langts aber? 
Dabei hab ich doch gehört, daß C so hochproduktiv sein soll... Ach 
stimmt ja: Ich bin ja der Einzige und die Gegenseite hat diese große 
Erfahrung.
Oh, daraufhin muß ich wohl umdenken...

Was glaubst Du eigentlich korrigieren zu müssen?
Ein funktions-äquivalenter C-Entwurf ist verlangt.
Du wärst freilich der Letzte von dem ich das erwarten könnte. Stimmts?

von Moby A. (moby-project) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Moby A. schrieb:
> Da fehlt Dir einfach ÜVS ;-)
>
> Was bedeutet denn ÜVS schon wieder - Ihr mit euren Abkürzungen!

Übung. Vorbereitung. System.

> Wie soll man da am anderen Ende der Welt noch mitkommen...

Da wird das Diskussionsthema auch nicht so relevant sein. Hier gehts um 
deutsche Gründlichkeit ;-)
Wo bitte lauscht Du denn gerade?

von Gerhard O. (gerhard_)


Lesenswert?

Moby A. schrieb:
> Gerhard O. schrieb:
>> Moby A. schrieb:
>> Da fehlt Dir einfach ÜVS ;-)
>>
>> Was bedeutet denn ÜVS schon wieder - Ihr mit euren Abkürzungen!
>
> Übung. Vorbereitung. System.
>
>> Wie soll man da am anderen Ende der Welt noch mitkommen...
>
> Da wird das Diskussionsthema auch nicht so relevant sein. Hier gehts um
> deutsche Gründlichkeit ;-)
> Wo bitte lauscht Du denn gerade?

Hallo Moby,

Danke für die Erklärung.

Ich lausche ganz aus der Ferne im Land der Holzfäller und Maple Syrup.

Edmonton, Alberta, Canada


Gruß,
Gerhard

P.S. Wer behauptet, daß wir in Kanada nicht gründlich sind?

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Edmonton, Alberta, Canada

Interessant.
Lohnt sich denn die Reise dorthin ? (frage ich mal als potentieller 
Tourist).

Was interessiert Dich denn am Thema Asm vs. C ?

von Gerhard O. (gerhard_)


Lesenswert?

Moby A. schrieb:
> Gerhard O. schrieb:
>> Edmonton, Alberta, Canada
>
> Interessant.
> Lohnt sich denn die Reise dorthin ? (frage ich mal als potentieller
> Tourist).
>
> Was interessiert Dich denn am Thema Asm vs. C ?

Ganz ohne Frage. Wenn Du die Natur liebst, vor den Bären keine Angst 
hast(;-))und Dir die Abwesenheit von vielen Menschenansammlungen nichts 
ausmacht, kannst Du bei uns viel erleben. Ich verbringe meine Ferien 
meistens in den Rockys an der Westküste mit Bergwandern und finde es 
immer sehr erholsam. An sich findet man auch in kanadischen Städten 
Sehenswerten, nur kann ich Edmonton zur Zeit nicht empfehlen weil bei 
uns zur Zeit zu viel gebaut wird. British Columbia gefällt mir sehr gut. 
Die Gegend um Vancouver ist recht toll. Man kann viel unternehmen. Die 
Berggegend dort ist sehr beeindruckend. Die Nachbarschaft zwischen 
Pazifischem Gewässer und den vollbewaldeten Küsten schafft viele 
photogenische Momente.

Was interessiert mich am Thema?


Ich liebe die embedded uC Technik und bin beruflich und Hobbymäßig erwas 
damit vorbelastet. ASM mag ich weniger und verwende es nur in kleinen 
homöopathischen Dosen und nur wenn unbedingt notwendig. Abgesehen davon 
befasse ich mich mehr mit PICs und nur ganz wenig mit AVRs. Bin also in 
Deinen Augen ein hoffnungsloser C Programmierer;-)

Was soll ich zum Thread sagen? Ich finde es ist halt schon viel digitale 
Tinte verbraucht worden...

Naja, wenn Du mich jetzt in die Ecke drängst, muß ich Eure 
Standhaftigkeit und Gelassenheit bewundern. Mir persönlich ist es 
innerhalb vernünftiger Grenzen eigentlich Wurscht wieviel Resourcen ein 
Programm vebraucht solange die Vorgaben einwandfrei erfüllt werden. Auf 
der Ebene des Mikroprozessors ist jedes Programm ganz gleich wie es 
erstellt worden ist, nur Maschinensprache und das arme Würstchen muß den 
Stuss den wir alle irgendwann schreiben, stur und sklavenhaft 
abarbeiten. Wenn Mikros nur sprechen könnten...

In dem Sinne, noch eine gute Nacht,
Gerhard

: Bearbeitet durch User
von Moby A. (moby-project) Benutzerseite


Lesenswert?

Besten Dank Gerhard für den  touristischen Einblick in Deine Gegend. Die 
kann es glaub ich mit meinem Bayern aufnehmen ;-)

Gute Nacht aus D

von Gerhard O. (gerhard_)


Lesenswert?

Moby A. schrieb:
> Besten Dank Gerhard für den  touristischen Einblick in Deine Gegend. Die
> kann es glaub ich mit meinem Bayern aufnehmen ;-)
>
> Gute Nacht aus D

Du bist aus Bayern? Von wo ungefähr? Die Chiemseegegend kenne ich noch 
gut von früher her und auch Rosenheim mit dem großen K dort. Ich bin von 
über der Grenze her, die Stadt mit der alten Festung und seiner 
Heldenorgel die man auch gut über der Grenze in Bayern hört.

Guten Abend aus C

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
>> Mal Schifahren zu gehen oder Eislaufen
>
> Hab ich letztens probiert.  Bin ziemlich blöd auf den Hinterkopf
> gefallen dabei. :o/

Da hat es wohl an Übung, Vorbereitung und System gefehlt...

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:

(Eislaufen)

> Da hat es wohl an Übung, Vorbereitung und System gefehlt...

Ja, ganz sicher. :-)

von Bernhard M. (boregard)


Lesenswert?

Moby A. schrieb:
>> Belege die "Bürokratie" entsprechend mit Codebeispielen.
>
> Dafür brauchts nichtmal Beispiele. Dafür langt schon ein Blick ins dicke
> C-Buch ;-)

Hmm, die Assembler Handbücher sind meist dicker als der C-Standard, und 
man braucht für jede Prozessorfamilie ein neues...

D.h. also Assembler ist viel bürokratischer als C - stimmt aus meiner 
Erfahrung.

von Gu. F. (mitleser)


Lesenswert?

Moby A. schrieb:
> Größere Asm-Programme aus meiner Feder hätten erst recht
> keine Chance auf Vergleich- als einzig möglicher Beweismöglichkeit.

Oh man, hätten, könnten, würden, ... alles klar ;-)

von Ralph S. (jjflash)


Lesenswert?

Moby A. schrieb:
> Das wirst Du aber nicht. Erstens, weil man entsprechende Software fertig
> kaufen kann und zweitens, weil so ein Unterfangen komplex, daten- und
> rechenintensiv ist. Damit ziemlich ungeeignet für Asm.

(Ironie an)
Wenn ASM doch ach so überlegen ist, dann kann es doch für gar nichts 
ungeeignet sein (Ironie wieder aus)

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.