- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 28

Thema: Geschwindigkeit Division AVR/BASCOM

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Dass es durch zb 16 schneller geht ist klar, oder?

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    45
    Beiträge
    689
    Zitat Zitat von Gock
    Dass es durch zb 16 schneller geht ist klar, oder?
    Nö, wie kommst Du da drauf. Das man mit Bitschieben schneller sein könnte ist klar, aber Bascom nimmt wohl immer den selben Rechenalgorithmus also dauert ein / 16 auch 111 Takte!

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Nein, das wird wahrscheinlich nicht 111 Takte dauern sondern etwas weniger, weil in 16 ein bit weniger 1 ist als in 18.

    MfG Mark

    EDIT-------------------
    Doch nicht. Bascom rechnet anscheinend anders als ich es vermutet habe.

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    45
    Beiträge
    689
    Zitat Zitat von p_mork
    Nein, das wird wahrscheinlich nicht 111 Takte dauern sondern etwas weniger, weil in 16 ein bit weniger 1 ist als in 18.

    MfG Mark
    Selbst ein / 2 (was in Assembler ein Takt is \/ ) dauert 111 Takte! Wenn Du es nicht glaubst versuche es selber.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137
    yo, dass ist doch scheisse wenn man sachen programmieren will, die fix gehen müssen schade dasses keine AVR's mit 40 MHz gibt ;D

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    Also dass Bascom derart ineffizient ist, war mir neu.
    Ein weiterer Grund es nicht zu verwenden, was ich ja auch nicht tue. Aber man kann halt nicht alles haben...
    Gruß

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    34
    Beiträge
    587
    Bascom ist ineffizient, da immer vom Ram gelesen wird und nicht mit Registern gearbeitet wird. Ich fand den Codevergleich Artikel im Wiki sehr interessant. Sollte man sich mal anschauen.

    https://www.roboternetz.de/wissen/in...h_AVR-Compiler

    Anmerkung: GCC4 ist nochmals 2 Stufen effizenter.

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Dim A As Byte
    Dim B As Byte

    A = 245
    B = 18

    A = A / B

    End
    111 Takte ?
    Jeder Kompiler sollte erkennen, daß es sich um konstante Werte handelt und alles zu Kompilierzeit berechnen, wenn man z.B. A an ein Port übergeben möchte, müsste das ganze 1 Takt dauern.
    Kein Wunder, daß die Bascomer Megas32 mit 16 MHz brauchen und sich sogar 40 MHz wünschen
    Software is like s e x: its better when its free.
    Linus Torvald

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    45
    Beiträge
    689
    Zitat Zitat von izaseba
    Jeder Kompiler sollte erkennen, daß es sich um konstante Werte handelt und alles zu Kompilierzeit berechnen, wenn man z.B. A an ein Port übergeben möchte, müsste das ganze 1 Takt dauern.
    Kein Wunder, daß die Bascomer Megas32 mit 16 MHz brauchen und sich sogar 40 MHz wünschen
    Wenn Bascom richtig schlau wäre wurde es eine leeren Code erzeugen da das Programm ne Berechnung macht die nie verwendet wird

    P.S. Bei A = 4 / 2 dauerts nur 3 Takte also ist der Kompiler nicht ganz dumm!

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Wenn Bascom richtig schlau wäre wurde es eine leeren Code erzeugen da das Programm ne Berechnung macht die nie verwendet wird
    Deswegen hab ich ja das Beispiel mit Portausgabe gemacht
    A = 4 / 2 dauerts nur 3 Takte also ist der Kompiler nicht ganz dumm!
    Hmm, Register mit 4 laden -> 1 Takt
    Shift nach rechts -> 1 Takt
    Register in SRAM Speichern -> 2 Takte



    P.S.
    Ich weiß schon, der ist wirklich schlau ! 4/2 macht der wahrscheinlich doch zu kompilierzeit also
    Register mit 2 laden -> 1 Takt
    Register in SRAM Speichern -> 2 Takte

    Also ganz klever der Kerl !!!
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test