www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Register zusammenfügen im PIC mit Assembler


Autor: Wolf Retlaw (Firma: Monster AG) (ik-student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mal eine Anfängerfrage. Ich möchte in meinem PIC 12F683 mehrere 
Register zusammenfügen, damit ich zum Beispiel größere Bitströme in 
einer Art Array zusammenfügen kann.

Beispiel:

Mein 12F683 Pic besitzt 8Bit-Register, ich möchte einen Bitstrom von 27 
Bits (ein gesendetes Frame) entgegen nehmen. Also benötige ich ungefähr 
4 Register.

Ich habe mich schon mal ein wenig schlau gemacht und bin auf der 
sprut.de Seite fündig geworden.

Um also mehrere Register zusammenschmelzen lassen zu können muss das 
wohl so aussehen ?  :

registername RES 04 ;4 Register werden zusammengefasst?

und wie kann ich nun am dümmsten darauf zugreifen um alle Register mit 1 
und 0 vollschreiben zu können ? ;)

Danke im Voraus
Gruß Wolf

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PIC kann keine Register zusammenfügen. Schade eigentlich! Du musst alle 
Operationen separat auf den einzelnen Registern ausführen. Bei Move und 
logischen Befehlen ist das kein Problem, aber schon bei Add / Sub geht's 
los, weil keine Operation da ist, die einen Carry draufaddiert.

virtuPIC

Autor: Wolf Retlaw (Firma: Monster AG) (ik-student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine schnelle Antwort Thomas!

hmm... das ist echt schade, aber irgendwie kann ich doch mit dieser oben 
genannten Definition doch irgendwie Register zusammenfassen ?
registername RES 04 ;4 Register werden zusammengefasst?

und zugreifen kann man zum Beispiel irgendwie mit :
           rrf    bitbuffer+x ;x ist eine Laufvariable
           .
           .
           incf   x           ;nach jedem Durchlauf erhöht

ist das so korrekt oder habe ich da einen Denkfehler drinnen !?

gruß
wolf

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo genau hast Du denn dieses 'RES' gesehen (link)?

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab's schon gefunden. RES reserviert Speicher.
 Buffer  RES  10   ;10 Byte Puffer
 :
 movlw   10
 movwf   Buffer
 movlw   13
 movwf   Buffer+1
 movlw   15
 movwf   Buffer+2
 :

Autor: Meister Eder (edson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@wolf retlaw

>        rrf    bitbuffer+x ;x ist eine Laufvariable
>         .
>        .
>       incf   x           ;nach jedem Durchlauf erhöht

Also da ist sogar ein gewaltiger Denkfehler drin! Was du zu bitbuffer 
hinzuaddierst ist die Adresse von x, erhöht wird dann der Inhalt der 
Variable x. Das ergibt wohl so keinen Sinn, oder?

Für Variable können durch die Definition mit RES mehrere Speicherzellen 
unter gleichem Namen zusammengefasst werden. Angesprochen werden die 
einzelnen Register so wie es der Tastendrücker oben gepostet hat.

Gruss,
Edson

Autor: Wolf Retlaw (Firma: Monster AG) (ik-student)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Meister Eder

das ist mir auch schon klar geworden, aber für mich wäre es günstiger, 
wenn ich halt eine Art Laufvariable hätte wie halt oben mein Pseudocode, 
wo eine Variable je nach Bedingung erhöht wird um mir den jeweilig 
benötigten Speicherplatz reservieren zu können.

naja muss ich wohl umdenken..


Gruß Wolf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.