Hallo,
hat schon ein mal jemand so etwas Programmiert?
Ringpuffer
- PIC18F2550
- Beiträge: 2846
- Registriert: Fr 30. Sep 2011, 13:08
Ringpuffer
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Re: Ringpuffer
Sowas steckt vermutlich in jedem seriellen Objekt mit Sende-/Empfangspuffer.PIC18F2550 hat geschrieben:hat schon ein mal jemand so etwas Programmiert?
***wühl***
Verfolg mal in FullDuplexSerial, was mit den Variablen rx_head, rx_tail, rx_buffer und dessen tx-Kollegen angestellt wird.
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
- PIC18F2550
- Beiträge: 2846
- Registriert: Fr 30. Sep 2011, 13:08
Re: Ringpuffer
Ob das alles richtig ist?
Muss mal Testen..
Was noch rein muss ist eine Sperre da hier mindestens zwei COG's drann sind.
Muss mal Testen..
Code: Alles auswählen
CON
BUFFER_LENGTH = 2048 'Recommended as 64 or higher, but can be 2, 4, 8, 16, 32, 64, 128 256.
BUFFER_MASK = BUFFER_LENGTH - 1
VAR
long head
long tail
byte buffer[BUFFER_LENGTH]
PUB Start
longfill(@head, 0, 2)
PUB CharOut(a)
repeat until (tail <> ((head + 1) & BUFFER_MASK)) ' Warten auf Platz im Buffer
buffer[head] := a
head := (head + 1) & BUFFER_MASK
PUB CharIn : a
repeat while (a := Check) < 0
PRI Check : a
a~~
if tail <> head
a := buffer[tail]
tail := (tail + 1) & BUFFER_MASK
PUB Count : a
a := head - tail
a -= BUFFER_LENGTH*(a < 0)
Gruß
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
PIC18F2550
drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo