- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 22 von 22

Thema: Das Gleiche ist nicht das Selbe - Laufzeitunterschiede

  1. #21
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von PICture
    ... ein MOSFET (metall oxid semiconductor FET) ... dass Gate (G) von Kanal (S-D Strecke) isoliert ist ...
    Danke. Ich hatte Beschreibungen zu beiden Typen gelesen, aber den Doppelstrich im Symbol nicht beachtet - obwohl die Isolierung von Gate, Drain und Source schon im dritten Satz dieser Beschreibung steht. Muss doch wieder mal ein paar Stunden Lesen üben.

    Was für ein schöner Tag. Sonne, Flugwetter und viel Neues!
    Zitat Zitat von sternst
    ... die Möglichkeit, Teile eines Ports atomar umzuschalten.
    An eine zufällige Eigenschaft hatte ich nicht wirklich geglaubt. Wozu das gut sein soll, weiß ich zwar noch nicht. Ich verstehe das so, dass damit ohne Kenntnis des aktuellen Zustandes der "andere" Zustand bei einer (echten oder unechten) Teilmenge der Portpins mit einem einzigen Maschinenbefehl herbeigeführt werden kann. Klingt tricky.
    Ciao sagt der JoeamBerg

  2. #22
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Wenn du mit
    PORTx^=(1<<Pxn);
    einen Pin togglest, macht der Compiler (sofern er den Trick mit dem PIN-Register nicht kennt) folgendes:
    PORTx einlesen
    gelesenen Wert mit (1<<Pxn) verXODERn
    Ergebnis auf PORTx ausgeben

    Das sind drei Takte, und wenn zwischendurch ein Interrupt auftritt, der ebenfalls PORTx beschreibt, wird der vom Interrupt veränderte Wert sofort wieder überschrieben.


    EDIT:

    PINB=(1<<PB3);
    PORTB^=(1<<PB3);
    wird zu
    Code:
      62:	98 e0       	ldi	r25, 0x08	; 8
      64:	96 bb       	out	0x16, r25	; 22
    
      66:	88 b3       	in	r24, 0x18	; 24
      68:	89 27       	eor	r24, r25
      6a:	88 bb       	out	0x18, r24	; 24
    WinAVR 20071221 kennt diese Möglichkeit zum toggeln eines Pins also noch nicht. Aber etwas hat er schon optimiert: das Ergebnis von (1<<PB3) wurde in r25 abgelegt und beim zweiten Mal wiederverwendet. Normalerweise würde die zweite Variante also sogar vier Takte brauchen.

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

LiFePO4 Speicher Test