ich habe ein problem ich prgrammiere momentan den pic18f2550. nun wollte ich ihn mit einem ringpuffer beschreiben aber ich bekomme es nicht hin, kann mir jemand helfen? dankeschön jan
jan schrieb: > aber ich bekomme es nicht hin, WAS bekommst du nicht hin? WAS willst du überhaupt machen? WOFÜR brauchst du den Puffer? Poste doch einfach mal, was du schon hast.
Ringspeicher hat Grösse x Schreiben (sz ist der Schreibzeiger) ringspeicher[sz]=wert sz = sz + 1 if sz > x sz = 0 Lesen (lz ist der Lesezeiger): wert=ringspeicher[lz] lz = lz + 1 if lz > x lz = 0
Der Entwickler schrieb: > Ringspeicher hat Grösse x > > Schreiben (sz ist der Schreibzeiger) > > ringspeicher[sz]=wert > sz = sz + 1 > if sz > x sz = 0 > > Lesen (lz ist der Lesezeiger): > > wert=ringspeicher[lz] > lz = lz + 1 > if lz > x lz = 0 "ringspeicher" muß die Größe x+1 haben bzw die Bedingung um lz wieder auf 0 zu setzen: if lz >= x. Welche Sprache wird das ?
ich brauche den puffer für eine messung bei der ich impulse zähle. die gezählten impulse sollen in den ringpuffer geschrieben werden, damit ich einen mittelwert aus meinen impulsen bekomme. reicht das? jan
Joachim Drechsel schrieb: > Der Entwickler schrieb: >> Ringspeicher hat Grösse x >> >> Schreiben (sz ist der Schreibzeiger) >> >> ringspeicher[sz]=wert >> sz = sz + 1 >> if sz > x sz = 0 >> >> Lesen (lz ist der Lesezeiger): >> >> wert=ringspeicher[lz] >> lz = lz + 1 >> if lz > x lz = 0 > > "ringspeicher" muß die Größe x+1 haben bzw die Bedingung um lz wieder > auf 0 zu setzen: if lz >= x. Stimmt, sorry. > > Welche Sprache wird das ? Eine PseudoSprache, an C angelehnt ;-)
Ich verstehe es nicht, in einigen Foren lese ich etwas von LPM und LDI oder auch von ZH und ZL die die Register R30/31 sein sollten aber dies klappt nicht. Kurz gesagt bräuchte ich nur mal ein Beispiel wie ich ein Ringpuffer beschreibe. Dankeschön
Z-Pointer Register auf r30 und r31 hört sich nach avr an... du kannst natürlich nicht erwarten, daß fertiger Code für avr auf dem pic läuft. Heißt: der pic wird auch Pointer Register haben und einen leicht anderen Assempler Syntax. Das musst du anpassen - die Funktionsweise des avr Beispiels hat aber zum Glück weiterhin Gültigkeit. P.S. Oder haben die Pics inzwischen auch so viele Register und zufällig auch auf r30/31 den Z-Pointer? Ist über 10 Jahtre her daß ich mal einen pic ausprobiert habe.
jan schrieb: > Ich verstehe es nicht Dann versuche mal, den Ablauf in Worten aufzuschreiben. jan schrieb: > in einigen Foren lese ich etwas von LPM und LDI Das ist der Nachteil von Assembler, er ist immer nur für eine bestimmte CPU, in diesem Fall AVR. In Assembler ist es auch erstmal nötig zu wissen, wieviel Elemente und wie groß ist ein Element. Peter
Hallo, Document DS39508 von Microchip ist das Family Referenzmanual für die PIC18F Familie. Da sind unter memory organisation die möglichkeiten indirekt auf den Speicher zuzugreifen recht ausfühlich erklährt. mfG Michael
danke konnte mein projekt mit dem ringpuffer beschreiben. muss jetzt nur noch die ausgabe über eine 7segment anzeige hin bekommen dann habe ich es geschafft. mfg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.