Schnellstmöglicher Bitbang (pin ein ausschalten) beim AVR

Gast #1564586
Lesenswert?

der Tiny2313 kann auch "Toggling"
1
Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of
2
DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port.

avr
Gast #1564608
Lesenswert?

Hi!
Es gibt nicht das
"schnellstmögliche BitBanging bei einem AVR? (Attiny2313)"
Es ist immer eine Frage der Randbedingungen.
Die schnellste Art "einen" Pin zu wechseln ist über einen Timer in 
CTC-Mode, wobei das Compareregister auf 0 gesetzt wird. Dann hast du 
CKL/2.
Du bist dabei allerdins an feste Pins gebunden.
In Software:
Wenn Tastverhältnis gleich sein soll:
1
      .
2
      .
3
neu: sbi Port, Bit
4
     nop
5
     cbi Port, Bit
6
     rjmp neu
7

8
oder:
9

10
     ldi R16,1
11
     ldi R17,1
12
neu: eor R16,R17
13
     out Port,R16    ;set/reset Bit0 des jeweiligen Ports
14
     rjmp neu

Tastverhältnis 1/4:
1
      .
2
      .
3
neu: sbi Port, Bit
4
     cbi Port, Bit
5
     rjmp neu

Du siehst viele Wege führen zum toggeln.

Viel Erfolg, Uwe
Gast #1564610
Lesenswert?

Claudio Hediger schrieb:
> Ich werds wohl so machen, das ich ne PLL hinten dran hänge... :)

Wenn jemand nach der maximalen Toggle-Geschwindigkeit fragt macht eine 
PLL keinen Sinn, für was auch immer.
#1564618
Lesenswert?

Uwe schrieb:

> Es gibt nicht das
> "schnellstmögliche BitBanging bei einem AVR? (Attiny2313)"

Eine Untergrenze für den Abstand von zwei Flankenwechseln eines Portpins 
bei Einhaltung der zulässigen Arbeitsfrequenz gibt es sehr wohl. Ob die 
Antwort etwas nützt ist eine andere Frage.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren