- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Suche arithmetischen Co-Prozessor für Atmel-8Bitter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Dieser Code in der main
    Code:
        /* Replace with your application code */
        double x=0.5;
        while (1) 
        {
    		x+=0.5;
    		double y = atan(x);
    		if (y > 1)
    		     PORTB = 0xFF;
    		else
    		    PORTB = 0x00;
        }
    benötigt lt. Simulator (ATMega328 ) etwa 2900 Zyklen pro Schleifendurchlauf. Das sind bei 8MHz ca. 360µs.
    Per TWI zu FPU jeweils 4 Byte hin und 4 Byte zurück sind bei 400kHz Busfrequenz allerdings auch schon 200µs
    Ok, den Bus kann man von Seite der FPU auf bis zu 4MHz hochdrehen, allerdings muss man im AVR immer noch in der ISR die Bytes einzeln einfüttern oder auslesen.

    Hast Du schon mal über Overclocking nachgedacht?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Oder mach das mit eine STM32...32-Bit FPU mit 40MIPS und mehr als genug Schnittstellen.

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695
    Oder mach das mit eine STM32...32-Bit FPU mit 40MIPS und mehr als genug Schnittstellen.
    Wenn ich könnte . . . :-/ . . . Seit Jahren habe ich hier eine Disco-STM32F407 rumliegen (heißt eigentlich STM32F4DISCOVERY, new order code STM32F407G-DISC1). Klar, ne FPU und so, etliche UARTs, mehrere I²Cs etc hatten mich in Versuchung geführt. Ein Bekannter hatte mir ein (bei ihm) funktionierendes Paket mit ner Eclipse-IDE überlassen, aber ich war nie in die Lage auch nur ein funktionierendes hello world rauszubringen. An I²C-Verbindung oder höheren Funktionen war nie zu denken. Schade. Ich hatte mein Bemühen mit dieser Technik dann vor Jahren aufgegeben, das Ding liegt seitdem hier in einer Schachtel :-/ ; leider. Mein archie, mein bisher anspruchsvollstes Projekt, funktionierte ja (zur Not) trotzdem ganz ordentlich.
    Ciao sagt der JoeamBerg

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Naja, dann probiers doch nochmal. Mittlerweile hat sich bei ST auch einiges getan: die alte Standardlibrary ist mittlerweile völlig obsolet, die schwerfällig-lahm-fette HAL wurde durch die Low-Level-Library ersetzt...da geht schon einiges.

    Einfach mal fragen, wenn es klemmt...vielleicht besser auf mikrocontroller.net, da ist immer wer der was weiß (auch wenn da viele sind, die nix wissen und sich trotzdem zu Wort melden).

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695
    Naja, dann probiers doch nochmal. Mittlerweile hat sich bei ST auch einiges getan ...da geht schon einiges .. Einfach mal fragen ..
    Ja, Du hast recht - kostet nur noch Überwindung. Aber ich arbeite mal dran *ggg*.

    .. auch wenn da viele sind, die nix wissen und sich trotzdem zu Wort melden).
    Die gibts immer. Ist ja bekannt: es wurde zwar schon alles gesagt, aber es hat noch nicht jeder alles gesagt.

    Schönen Sonntag - hier (Oberallgäu) scheint die Sonne und im Tal ist so gut wie alles trocken - und es geht mitm Bike in die Natur.
    Ciao sagt der JoeamBerg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Es gibt von ST übrigens ein Werkzeug, womit du den ganzen Konfigurationskram automatisch erstellen kannst. Du wählst (auf einer Klicki-Bunti-Oberfläche) erstmal deinen Mikrocontroller oder das Board aus, dann kannst du jeden Pin einzeln konfigurieren (E/A, PushPull, Open-Drain, Pullups/downs, ...), Hardwareperipherie wie Timer, ADCs, SPI, UART, ...und dann macht der ein fertiges Projekt daraus wo du sofort loslegen kannst.

    Vielleicht erleichtert das den Einstieg etwas.

    https://www.youtube.com/watch?v=szMGedsp9jc

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Zitat Zitat von Holomino Beitrag anzeigen
    Dieser Code in der main ...
    Wieviele unterschiedliche Werte kommen für "x" überhaupt infrage; endlich viele, womöglich bei genauer Betrachtung nur Wenige? Und wie wirkt sich "x" auf "y" aus (y > 1), kann "x" dann auf wenige Werte reduziert werden (weil Zwischenwerte am Ende zum selben Resultat führen)? Dann kann der Code optimiert werden, ohne eine Hochleistungsrechenmaschine zu benötigen.
    Mit freundlichem Gruß
    Moppi

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.310
    Zitat Zitat von Holomino Beitrag anzeigen
    benötigt lt. Simulator (ATMega328 ) etwa 2900 Zyklen pro Schleifendurchlauf. Das sind bei 8MHz ca. 360µs.
    Hochgerechnet auf einen 64MHz XMega 45µs
    Ich programmiere mit AVRCo

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695

    Number cruncher, (transzendente) Funktionen und keine Werte

    .. oder: kann ein ESP8266-12F nen number cruncher machen ? ?

    Zitat Zitat von oberallgeier Beitrag anzeigen
    Für sin hatte ich nie Werte. Aber für den .. Zeitbedarf des atan hatte ich mal was gerechnet (und Sternthaler) ..
    .. und dann flattert mir in den letzten Tagen ein klitzekleiner 32Bitter (ESP8266-12F) auf die Arbeitsplatte. Danke Sternthaler.
    Nebensache: das erste Mal im Leben in die arduino IDE einarbeiten (brrrrrr). Die Ergebnisse scheinen mir interessant.
    Code:
    -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
    Auszug aus meinem Logbuch [Inst-Logb_arduino_ab_Mai-2022.txt] . Stark gekürzt (ohne jeweilige Anmerkung)
    Hintergrund ist meine ALTE Überlegung zur Bahnplanung des archie beim Fahren ABER auch zur Bewegung
    mehrgliedriger "Arme" nach Art von Roboter-Bewegungsroutinen. Da benötige ich vielfach Wurzel und Arcustangens
    . . . und ich dachte, dass z.B. so ein ESP auch als Numbercruncher herhalten könnte. Wobei ich die Tests hier -
    die mit den herkömmlichen Rechnern 328P und 1284P - noch nie gemacht hatte. Leider.
    -  -  -  -  -  -  -  -  -  -  -  -  -  Auszug  -  -  -  -  -  -  -  -  -  -  -  -  -
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
     16. 6.2022 19:40  Studio4/1284p@20MHz                Messung      SQRT 22.7  µs    ATAN 130.2  µs
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
     16. 6.2022 10:ff  Studio4/328p/nano@20MHz            Messung      SQRT 24.7  µs    ATAN 169.   µs
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
     15. 6.2022 18:ff  Studio4/328p/nano@16MHz            Messung      SQRT 30.9  µs    ATAN 185.6  µs
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
     15. 6.2022 16:50  ainoIDE/nano328.ino/nano@16MHz     Messung      SQRT  3.71 µs    atan   3.71 µs
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
     15. 6.2022 15:08  ainoIDE/ESP12F2.ino/ESP12F@80MHz   Messung      SQRT  6.94 µs    atan  30.57 µs
                       ainoIDE/ESP12F2.ino/ESP12F@160MHz  Messung                       atan  15.29 µs
    – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
    Anm2.: anano, aino und ähnlich bedeutet hier arduino-nano oder arduino-IDE-file und ähnlich.
    -  -  -  -  -  -  -  -  -  -  -  -  -    Ende   -  -  -  -  -  -  -  -  -  -  -  -  -
    Das mit dem arduino-nano-Clone+arduinoIDE @16 MHz gefahrene Ergebnis wurde mehrfach wiederholt - es bleibt bis auf Nachkommastellen gleich. Bedauerlicherweise gibt es (? find ich jedenfalls nicht) bei/durch die arduino-IDE keinen Output ähnlich den *.lls-Dateien beim Studio4 - sodass ich weder Rechenweg noch Rechenumfang der verschiedenen IDE´s beurteilen kann.

    Auszug des Codes für Studio 4 - die *.ino-Version ist gleich(-wertig).
    Code:
    /* >>
      Stand  D:\D_pro-f..Std4-1284p\Messg-sq+at-Std4-1284\Messg-sq+at-Std4-1284.c
     =============================================================================== =
      Target MCU        : ATmega Mega1284P TQFP
      Target Hardware   : 1284Platine-archie
      Target cpu-frequ. : 20 MHz
      . . . alles Weitere stark gekürzt, meist/teils ohne besondere Anmerkung
     ============================================================================== */
    // ============================================================================= =
    // ===  HAUPTProgramm ========================================================== =
      . . . gekürzt
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     int main(void)
     {                              //
      . . . gekürzt
      float mf      = 21.1415926F;   // mf = millisfloat
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      . . . gekürzt
      while ( 1 )                   // Das eigentliche Hauptprogramm
      {                             //
    // - - - - - - - - - - - - - - - -
        PORTA       |=   ( 1<<5 );
        rt           = sqrt ( mf ); //
        PORTA       &=  ~( 1<<5 );
        wms (    2 );               //
    // - - - - - - - - - - - - - - - -
        PORTA       |=   ( 1<<5 );
        rt           = atan ( mf ); //
        PORTA       &=  ~( 1<<5 );
        wms (   20 );               // 22062022-16h38: bei  100 => ca. alle  4 ms
    // - - - - - - - - - - - - - - - -    
        mf      = mf + 0.01415926F; // Wert ändern
        rt2     = rt;               //
    // - - - - - - - - - - - - - - - -
      }             // Ende   while ( 1 )
      . . . gekürzt
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      return 0;             //
     }                      //        
    // =====  Ende des Testabschnittes, er kann aus mehreren Abschnitten bestehen ====
    // ===============================================================================
    /*  Übersetzungskommentar:      Programsize               Datasize
    Build 16. 6.2022 13:12:10       3908 bytes ( 3.0%)       284 bytes (1.7%)
          16. 6.2022 13:18:01       3904 bytes ( 3.0%)       280 bytes (1.7%)
    Build succeeded with 0 Warnings...
     ============================================================ */
    Zur Messung auf M1284P@20MHz/Studio-4 gibts auch z.B. für den ATAN dieses Messbild (der Linienzug vor der Markierung stammt von "SQRT").
    Geändert von oberallgeier (30.06.2022 um 15:57 Uhr) Grund: Tipp- und sonstige Fehler
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.695

    Number cruncher, (transzendente) Funktionen und saubere Werte

    Die oben genannten Ergebnisse zur arduinoIDE auf arduino-nano@16MHz fand ich unglaubwürdig. Neue, ausführliche Messungen über die oben vorgestellte Ergebnisse bestätigten mein Misstrauen, die folgenden Werte sind aus meiner Sicht gesichert(er).

    SEHR kurz zusammengefasst:

    Mit arduino-IDE:
    auf ESP8266-12F@80MHz.....atan zwischen..26,1 (68,2) überwiegend 31,2 µs (±0,3)
    auf ESP8266-12F@160MHz...atan zwischen 13,1 (46,7) überwiegend 16,8 µs (±0,3)
    auf arduino-nano@16MHz.....atan zwischen 178...(155) überwiegend 145 µs (± 5)
    Mit Studio7 (7 statt 4 wegen Werteausgabe seriell)
    auf nano328@20MHz+Studio7 atan ca 115 µs, sqrt ca. 25 µs

    Die erfassten Zahlenwerte zeigten eine gute Übereinstimmung in den ersten sechs (signifikanten) Stellen. Beispiel für ne Ausgabe vom arduino-nano@20MHz:

    ......Klicke auf die Grafik für eine größere Ansicht

Name:	nano328a1-7_x12_sqrt+atan-Werte-kl.jpg
Hits:	5
Größe:	80,5 KB
ID:	35811

    Ausführlichere Informationen bei Bedarf.

    Mein Fazit: der ESP8266 (hier ~12F) ist - angebunden z.B. mit I²C - insbes. beim Betrieb mit 160 MHz ist, insbes. für ATMEL-8Bitter, ein lohnender number cruncher für transzendente Rechnungen. Die Ein- und Ausgänge des ESP könn(t)en dabei auch direkt für Steuerungsaufgaben benutzt werden.
    Geändert von oberallgeier (14.07.2022 um 12:52 Uhr)
    Ciao sagt der JoeamBerg

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Kleiner Atmel Prozessor mit viel RAM
    Von hunni im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 14.06.2014, 13:06
  2. Suche Suche Atmel STK 501
    Von Stef_Fen im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 26.03.2013, 18:55
  3. I²C und der Deadlock bei Atmel 8Bitter mega. Ein Lösungsvorschlag
    Von oberallgeier im Forum Software, Algorithmen und KI
    Antworten: 5
    Letzter Beitrag: 17.12.2012, 09:18
  4. Suche Prozessor mit CVBS-Ausgang
    Von sebastian.heyn im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 13.09.2005, 20:15
  5. Suche Atmel ATTiny 24/45
    Von JD24 im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 30.08.2005, 21:06

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests