- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: subtrahieren + addieren

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Was nutzt effizienter Code, wenn er nicht korrekt ist?

    Zitat Zitat von oe9vfj
    Ein effektiver Code könnte z.B. so aussehen:
    lds r24, b1
    lds r24, b2
    mul r24, r25
    ldi r24, 5
    add r24, r0
    sts b1, r24

    (18 Byte Codegröße mit 10 Takte Ausführungszeit)
    Ok, nur ein Tippfehler *haarespalt*

    Ich hab mal interessehalber geschaut, was avr-gcc da macht:
    Zitat Zitat von avr-gcc
    lds r25,b1
    lds r24,b2
    mul r25,r24
    mov r24,r0
    clr r1
    subi r24,-5
    sts b1,r24
    Da bleibt nix zu wünschen übrig
    Das clr r1 kommt daher, das in r1 immer die Konstante 0 gehalten wird um viele Sachen effizienter zu erledigen.
    BTW: Gibt es kein BASIC-Frontend für GCC? Oder in Planung?
    Was GCC an Optimierungen mitbringt ist ja der Hammer. Was fehlt wäre nur ne neue Sprache dranzustöpseln wie C,C++,Ada,etc
    Middle- und Backend müssten wohl kaum angepasst werden.
    Disclaimer: none. Sue me.

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    OK, das ist ein Tippfehler. Das ändert aber nichts an der grundsätzlichen Aussage, dass BASCOM-AVR trotz der Zerlegung in zwei Basic-Befehle einen kompakteren und schnelleren Code erzeugt als fastAVR, welcher diesen math. Audruck in einem verarbeitet.
    Interessant ist auch Dein Vergleich mit avr-gcc, ich werde aber trotzdem bei BASCOM-AVR bleiben.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Wie ein Compiler/Interpreter intern mit Ausdrücken umgeht ist mehr oder weniger unabhängig davon, wie er in der Quelle hingeschrieben werden muss. Jedenfalls sollte das so sein, wenn ansatzweise optimiert wird.

    Was Bascom da anstellt ist ja heftig. Warum macht das so viel unnötiges Zeug? Kein Winder, wenn da fix das Flash voll ist.
    Disclaimer: none. Sue me.

  4. #14
    Gast
    es gibt verschiedene programmierer.
    bei den einen kommt es nicht auf die optimierte umsetzung des codes an
    sondern das der sensor einfach und korrekt angesprochen wird.
    denen interessiert zwar der code, machen hier und da vorschläge
    aber können den source-code nicht optimieren weil diese gruppe
    in Bascom programmiert.

    bei der nächsten gruppe handelt es sich um leute, die wissen wollen
    was im AVR vor geht und möchten schnellen ausführungscode.
    die gehören zur gruppe der winavr-c-progger.
    zwar lässt sich in winavr-c der code durch schalter optimieren,
    aber es fallen dann manchmal auch routinen zum opfer die
    gebraucht werden, aber durch den optimierungschalter für unwichtig
    eingestuft werden und weg sind sie. hier muss man dann immer
    den mittelweg suchen. aber die könner liegen mit winavr-c
    schon richtig, weil ohne das kennen der interna vom AVR
    auch winavr-c nicht das richtige ist.

    die dritte gruppe möchte die optimalsten programme und die
    gib es nur, wenn nach dem compilieren ein asm-sourcecode vorliegt
    den man dann verbessern kann und wieder neu compilieren kann in der
    gleichen gui-oberfläche ohne gross aus dem programm auszusteigen.
    dafür nimmt man fastavr-basic. hier ist man hautnah mit dem AVR auf du und du.
    und es gibt keinen faulen tricks mehr.

    alle oben erwähnten programme machen nicht das optimalste ergebnis
    daraus. das eine programm hat hier mängel und das andere programm
    hat dort mängel. der user darf aber vom asm-sourcecode nicht ausgesperrt
    werden. und bei fastavr-basic wird er nicht ausgesperrt.
    ein waschechter proggi zeigt auch interesse am ändern und
    gibt sich nicht mit dem vorgegebenen zufrieden, nach dem motto:
    vogel friss oder stirb.

    hier ein einfaches beispiel wie es in fastavr-basic geht.
    eine gleichung "b1=b1*b2+b3" in verschiedenen varianten.

    1. original b1=b1*b2+b3 :

    ;-Line--0012----b1=b1*b2+b3--
    lds zl,b1
    push zl
    lds zl,b2
    pop r24
    mul zl,r24
    movw zl,r0
    push zl
    lds zl,b3
    pop r24
    add zl,r24
    sts b1,zl

    2. original b1=b1*b2
    b1=b1+b3 :

    ;-Line--0009----b1=b1*b2--
    lds r24,b1
    lds zl,b2
    mul zl,r24
    movw zl,r0
    sts b1,zl
    ;-Line--0010----b1=b1+b3--
    lds r24,b1
    lds zl,b3
    add zl,r24
    sts b1,zl

    3. eine verbesserte version. eine von den obigen (die 2.) wurde sich
    bei einem glas rotwein kurz vorgenommen und verbessert
    und dann wieder in der gleichen gui von fastavr-basic neu compiliert :

    lds r24,b1
    lds zl,b2
    mul zl,r24
    movw r24,r0
    lds zl,b3
    add zl,r24
    sts b1,zl


    mfg pst

  5. #15
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Öhm... hab ich das richtig verstanden?
    Du nimmst was dein Basic-Compiler ausspuckt, schnitzt dran rum und futterst das Assembler damit?
    Dann kann ich auch gleich nen Assembler hernehmen für zeitkritische Module; dann ist mein Code wenigstens gescheit kommentiert.

    Aber immer hinter nem Compiler herzuwischen ist doch nervig, zeitraubend und fehleranfällig. Wenn der erzeugte Code mies ist, dann zieht sich das ja durchs ganze Projekt und ist nicht auf einzelne Stellen berschränkt. Und wenn ich in der Quelle was kleines ändere, fängt alles wieder von vorne an *graus*.

    Und GCC wird niemals nicht was wegwerfen, das noch gebraucht wird. Er wird eher meckern, wenn was definiert wird, das unnötig ist. Wird hingegen was nicht gebraucht, landet's eben in der Tonne -- wo's auch hingehört.
    Disclaimer: none. Sue me.

  6. #16
    Gast
    ich habe das fastavr-basic gekauft um bei asm in der nähe zu sein..
    das fastavr-basic kann den assembler auch sofort damit füttern ohne das ich etwas ändere. die bascomprogger haben den nachteil das sie es nicht machen können obwohl sie es gerne täten und die lib dazu, mag garnicht dran denken.
    ich finde es als hobby ganz toll, so etwas zu ändern/schnitzen und zu tüfteln und zu schauen, wie es in asm aussieht. sonst ist es kein hobby mehr. beim hobby muss man zeit... haben, wenn es einen zu zeitraubend vorkommt, soll man etwas anders machen.
    wer perfekt ist, der muss in das andere avr-forum gehen, dort gibt es fast nur ing. und techniker die für firmen entwicklen und geldverdienen müssen. die lachen nur über dieses forum und sagen: was ihr macht ist kinderkram.
    aber so ist das halt. der eine macht das so und der andere so.
    auch wird von den ing und den technikern sogar der winavr-c nicht ernst genommen, obwohl die leistung von dem schon eigenermassen gut ist für unseren hobbybereich. die guten kosten etwa ab 500 euro in der mittelversion. ich will damit auch nur sagen, das man uns in diesem forum nicht so ernst nehmen soll in der technik und alles ganz locker sehen soll. wir hier alle sind nur kleine künstler und keine fachleute, der eine beugt sich ein bisschen mehr aus dem fenster und der andere ein bisschen weniger, aber in wirklichkeit befinden wir uns hier im unteren wissensbereich worüber die anderen schmunzeln.
    ich glaube wer ein fundiertes wissen hat mit dem AVR und progg-sprachen, der wird sein wissen zu geld machen.
    mfg psf

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hallo Pebisoft,
    wie immer siehst du die Dinge sehr subjektiv.
    die bascomprogger haben den nachteil das sie es nicht machen können obwohl sie es gerne täten
    Ich zB. will gar nicht in Assembler rumbasteln.
    dort gibt es fast nur ing. und techniker die für firmen entwicklen und geldverdienen müssen. die lachen nur über dieses forum und sagen: was ihr macht ist kinderkram.
    Dann sollen sie mal lachen. Wobei ich das nicht glaube.
    Hier gibt es richtig fähige Leute, Ingenieure und Techniker, die sehr wohl wissen, was sie tun.
    (Ich denke da zB. an Jan, den ich seit Jahren auch persönlich kenne)
    auch wird von den ing und den technikern sogar der winavr-c nicht ernst genommen, obwohl die leistung von dem schon eigenermassen gut ist für unseren hobbybereich.
    Es gibt genug Ingenieure, die auch Bascom sehr ernst nehmen.
    ich glaube wer ein fundiertes wissen hat mit dem AVR und progg-sprachen, der wird sein wissen zu geld machen.
    Stimmt, deshalb beschäftige ich mich beruflich ja auch mit AVRs und ausschließlich mit Bascom, da es für meine Anforderungen mehr als ausreichend ist. Und das in einem High-End Bereich...
    Ich bin leider kein Programmierguru, eher das Gegenteil . Eben deshalb ist Bascom für mich die richtige Wahl. Einfach und Effizient.
    Ich habe schon mal geschrieben, daß es in vielen Fällen eben NICHT auf extreme Ausführungsgeschwindigkeit ankommt, sondern auf kurze Entwicklungszeiten, gute User-Interfaces, das kurzfristige einbinden von Kundenwünschen usw.
    Und nicht jeder hat Zeit oder Lust, am jedem Bit rumzuoptimieren.
    Das mag in anderen Bereichen, in denen es um höchste Effizienz geht, unerläßlich sein, aber so ist das eben nicht überall.

    Was bringt mir es, wenn ich Daten in 10 µS bearbeite, wenn ich die nur zB. alle 10mS senden muß und der Controller die restliche Zeit nur rumgammelt ?

    Was für dich gilt, gilt eben nicht unbedingt für andere Leute.
    Wenn du dich gerne mit Optimierungen, Verbesserungen beschäftigst,
    dann ist das schön für dich und für manch anderen, der davon lernen kann.
    Aber du kannst nicht einfach Leuten die Professionalität absprechen, nur weil sie es nicht so machen, wie du.

    Gruß
    Christopher

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    06.08.2005
    Ort
    Berlin
    Alter
    59
    Beiträge
    239
    Hallo pebisoft,

    > es gibt verschiedene programmierer.

    Warum nur wuste ich schon nach dem Lesen der ersten 3 Sätze, das Du es bist?

    Ist jetzt aber nicht böse gemeint. Am Artikel ist nichts auszusetzen.

    Aber zu Deinem letzen Artikel muß ich sagen, das jeder eine Change bekommen sollte mit diesem Hobby anzufangen. Überall fangen wir ersteinmal ganz doof an. Ob es beim Krabbeln, bei der Fahrschule oder in der Robotik ist. Daran ist nicht schlechtes. Ich bezweifle, das man über uns lacht. Im Gegenteil: aus den jungen (14Jährigen) Tüftlern von heute wächst die Konkurenz von morgen heran.

    Gruß Dirk

  9. #19
    Gast
    ich meine nicht die kids sondern die erwachsenen, die hier versuchen eine promiseite zu kreieren und alles toternst nehmen über die schmunzelt man im anderen forum.
    wenns um zeiten in us geht muss ich sehr wohl auf asm-verbesserungen achten. gerade in meinem fall, wo ich mit einem AVR wieder dieses fbas-fernsehbild dargestellt habe und das nur in fastavr-basic. wenn ich hier und da etwas ändere , wird das bild schon sehr stabiler, ist kaum zu glauben. diese darstellung gab es zur zeit nur mit winavr-c.
    mfg psf

  10. #20
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    ich weiß nicht, welche "Erwachsene" hier eine Promiseite (wobei ich nicht genau weiß, was du damit meinst) kreieren wollen, wen meinst du denn ??
    (oder meintest du Profi-Seite ??)
    Ich habe bis jetzt nicht den Eindruck, daß hier alles todernst genommen wird. Eher im Gegenteil. Wenn hier alles todernst genommen würde, wäre ich schon lange nicht mehr hier
    Wenn anderswo über das Forum geschmunzelt wird, dann ist das für mich absolut OK.
    Ich bin nicht umsonst auf dieses Forum gekommen.
    In Foren, wo man auf andere herabsieht, fühle ich mich nämlich nicht wohl.

    Bei einem Programm wie FBAS Ausgabe direkt mit dem AVR ist natürlich klar, daß man ohne Assembler kaum Erfolg haben wird.
    Für mich ist es aber nicht gerade erstrebenswert, in einem Basic Compiler Programme zu schreiben und die im Nachhinein wieder im Assembler zu zerpflücken und auszubessern.
    Das es die Möglichkeit gibt, ist natürlich nicht schlecht.

    Gruß
    Christopher

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen