Hallo zusammen, gibt es irgendein Dokument von microchip welches zb. diese Macros aus der Pic-inc.datei hier genau erklärt? Punkt 2. hier wäre mir klar...nach einem Komma dann die Position des Bits aber was sagen die anderen aus?? danke im voraus...ich denke hier wissen das viele schon, aber ich bin noch neu in diesem Gebiet.:) 1. PORTA_RA0_POSN equ 0000h 2. PORTA_RA0_POSITION equ 0000h 3. PORTA_RA0_SIZE equ 0001h 4. PORTA_RA0_LENGTH equ 0001h 5. PORTA_RA0_MASK equ 0001h
Rudi R. schrieb: > gibt es irgendein Dokument von microchip welches zb. diese Macros aus > der Pic-inc.datei hier genau erklärt? Es ist ja eher andert herum man kannt das Datenblatt und freut sich das es vorgefertigte Files gibt.
siehe z.B. https://www.microchip.com/forums/m241838.aspx ....der compiler wird das angegebene Wort (z.B. PORTA_RA0_POSN) mit dem durch den equ-Befehl festgelegten Zahlenwert ersetzen. (hier z.B. wird die Zahl 0000h eingesetzt) Eine hervorragende (deutschsprachige) Seite zum Einstieg in PICs ist: https://www.sprut.de/
Hans B. schrieb: > siehe z.B. > https://www.microchip.com/forums/m241838.aspx > > ....der compiler wird das angegebene Wort (z.B. PORTA_RA0_POSN) mit dem > durch den equ-Befehl festgelegten Zahlenwert ersetzen. (hier z.B. wird > die Zahl 0000h eingesetzt) > > Eine hervorragende (deutschsprachige) Seite zum Einstieg in PICs ist: > https://www.sprut.de/ Jou, die sprute-Seite ist wirklich gut, die inspiziere ich schon eine ganze Weile! Und wenn das so ist, warum gibt es dann 3 unterschiedliche Macros um auf 1 zu setzen und 2 um zu nullen?Ist das normal?
...ich glaub, das sind keine Macros sondern nur Zuweisungen. Der PIC versteht ja grundsätzlich keine Textbezeichnungen sondern nur Zahlen. Warum mehrere? Keine Ahnung - aber vielleicht wurde z.B. bei früheren Prozessoren und Beispielprogrammen andere Abkürzungen verwendet - und bei mehr fortgeschrittenen Prozessoren dann die Bezeichnungen geändert? Wahrscheinlich gibt's mehrere Gründe. Wenn das nicht gefällt, dann sucht man sich im Datenblatt die richtigen Zahlenwerte heraus und setzt diese dann direkt in den Code. (Der Zahlenwert kann dann aber bei jedem Prozessor ein anderer sein....)
Rudi R. schrieb: > Und wenn das so ist, warum gibt es dann 3 unterschiedliche Macros um auf > 1 zu setzen und 2 um zu nullen?Ist das normal? Nicht dass ich das sicher wüsste, aber ich denke, solche steinzeitlichen Plattformen wie die PICs (mir immer wieder ein Rätsel, wie man sich das heutzutage noch freiwillig antun kann) schleppen allerhand historischen Ballast mit sich herum.
Rudi R. schrieb: > Und wenn das so ist, warum gibt es dann 3 unterschiedliche Macros um auf > 1 zu setzen und 2 um zu nullen?Ist das normal? Sowas wäre für nen Compiler und Codegeneratoren interessant...?-/
.... das hat mit dem (angeblich steinzeitlichen) Prozessor überhaupt nichts zu tun. Wenn im include-file z.B. steht: PORTA equ 000Ch dann kann man im code einfach "PORTA" schreiben und muss sich nicht die Adresse aus dem Datenblatt suchen (hier= 000Ch) um den Port zu lesen od. zu beschreiben. (Die Bezeichnung PORTA wird durch den Zahlenwert der Adresse ersetzt) Diese Adresse kann bei den unterschiedlichen Prozessortypen verschieden sein. Deshalb gibt's für jeden Prozessor ein include-file und natürlich auch ein Datenblatt in dem auch der Adresswert steht.
Markus F. schrieb: > Nicht dass ich das sicher wüsste, aber ich denke, solche steinzeitlichen > Plattformen wie die PICs Tja, dir fehlt zuvörderst das sichere Wissen - und das offenbar auf breiter Front. Bedenke mal, daß solche genau so steinzeitlichen Plattformen wie der 8051 auch heutzutage noch in Mengen eingesetzt werden. Das ist viel weiter verbreitet, als du es dir denkst. Und bei Software ist es sinngemäß. Solche steinzeitlichen Betriebssysteme wie Windows haben einen erheblichen Marktanteil - nur das noch ein Jährchen steinzeitlichere Linux kommt da nicht heran... Aber lassen wir die Polemik hier mal bleiben. Mal im Ernst: Wie kommst du auf solche eigenartigen Ansichten? Ich vermute, daß du alle Elektronik nur unter dem eingeschränkten Blickwinkel des C-Programmierers siehst. Im Eröffnungspost kann man lesen: 'equ' - und das bedeutet, daß dies aus zugehörigen Assembler-Quellen zu kommen scheint. Vermutlich kennst du die PIC-Architektur(en) nur wenig bis garnicht und fühlst dich genau deshalb erstmal verschreckt und folgerst 'was ich nicht kenne, ist bäh..'. W.S.
W.S. schrieb: > Vermutlich kennst du die > PIC-Architektur(en) nur wenig bis garnicht und fühlst dich genau deshalb > erstmal verschreckt und folgerst 'was ich nicht kenne, ist bäh..'. Sei versichert: ich kenne die PIC-Plattform gut genug, um zu wissen, dass sie gegenüber modernen Konzepten im Wesentlichen aus einschneidenden Einschränkungen besteht. Ich wiederhole mich: warum man sich so was ohne Not ("Not" durchaus auch im Sinne von "Code Recycling") antut, ist mir schleierhaft.
Hallo W.S. dieser lanweilige Disput stammt meines Wissens von den Anhängern der ATMEL uC. Die fanden, dass eben PIC Steinzeit ist gegen die Architektur von ATMEL uC. Ist öde, so wie der ewige Streit zwischen Golf-Fahrern und Astra-Fahrern mal war. Gruß Gerhard
Equ set und = sind im mpasm manual beschrieben. Alternativ auch im gpasm ,dann aber nicht mehr von microchip, ist aber vielleicht einfacher zu finden da letzthin einige links von microchip ungültig wurden.
Markus F. schrieb: > Rudi R. schrieb: >> Und wenn das so ist, warum gibt es dann 3 unterschiedliche Macros um auf >> 1 zu setzen und 2 um zu nullen?Ist das normal? > > Nicht dass ich das sicher wüsste, aber ich denke, solche steinzeitlichen > Plattformen wie die PICs (mir immer wieder ein Rätsel, wie man sich das > heutzutage noch freiwillig antun kann) schleppen allerhand historischen > Ballast mit sich herum. Tja. ich habe ein Lehrbuch für Anfänger, da wird dieser PIC verwendet und das Buch ist eigentlich noch nicht so alt!? Dieser PIC ist ziemlich universell und hat eine Doku von 669 Seiten! Dass dieser nicht auf Anhieb zu verstehen ist, scheint einleuchtend. Die Universelle Einsetzbarkeit gefällt mir jedenfalls...beschäftige ich mich lieber erst mit einen, denn der kann ja schon eine ganze Menge und wird mir wohl ausreichen. [[https://www.thalia.de/shop/home/artikeldetails/A1055371411?ProvID=11000533&gclid=EAIaIQobChMI872Mz8_o8wIVRrrVCh19DAhjEAYYASABEgK41PD_BwE&nclid=gtcJwPfMQrS5AqOKpNlUz4_PpKUtZIwhoGrPxnychd00myNO0Qtzkh_vLca623rt]]
Markus F. schrieb: > Ich wiederhole mich: warum man > sich so was ohne Not ("Not" durchaus auch im Sinne von "Code Recycling") > antut, ist mir schleierhaft. OK, dann wiederhole ich mich auch einmal: Diese kleinem PICs haben pfiffige Eigenschaften, mit denen man Dinge tun kann, die zum einen nicht mit anderen µC gehen und die zum anderen sparsame und sinnvolle Lösungen bieten, die man auf andere Weise ebenfalls nicht tun kann, ohne dabei mehr Aufwand zu treiben, als das mit eben diesen von dir nicht verstandenen PICs geht. Mit anderen Worten: Deine Einschätzung beruht nur auf deinem Blickwinkel auf die Dinge. Das ist alles. Natürlich ist es einem jeden selber überlassen, womit er sich befaßt - es sei denn, der jeweilige Broterwerb erfordert etwas anderes. Suche dir also für deine Privatangelegenheiten eine andere Architektur aus und werde damit glücklich. W.S.
W.S. schrieb: > pfiffige Eigenschaften, mit denen man Dinge tun kann, die zum einen > nicht mit anderen µC gehen welche denn zum Beispiel?
Xmos als Beispiel. Die Entwicklungsumgebung ist aber sehr Zickig, oder UC mit tpu, noch zickiger.
W.S. schrieb: > Mit anderen Worten: Deine Einschätzung beruht nur auf deinem Blickwinkel > auf die Dinge. Das ist alles. Natürlich. Worauf denn sonst? Persönliche, (leider) leidvolle Erfahrung. W.S. schrieb: > Diese kleinem PICs haben > pfiffige Eigenschaften, mit denen man Dinge tun kann, die zum einen > nicht mit anderen µC gehen und die zum anderen sparsame und sinnvolle > Lösungen bieten, die man auf andere Weise ebenfalls nicht tun kann, was das genau wäre, würde mich echt mal interessieren.
Markus F. schrieb: > Natürlich. Worauf denn sonst? Persönliche, (leider) leidvolle Erfahrung. Persönliche und leidvolle Erfahrung? Sehr seltsam. Allerdings erinnert mich so etwas an die damaligen Diskussionen zwischen den Anhängern von Motorola und denen von Intel/Zilog. Ist schon länger her. Der Knackpunkt war damals der Unterschied in der Endianess beider Architekturen, der sich dann in geradezu kreischenden Auseinandersetzungen entlud. So etwas ähnliches vermute ich da bei dir. > was das genau wäre, würde mich echt mal interessieren. Lies die zugehörigen Manuals selber, dann siehst du es - vorausgesetzt, du interessierst dich tatsächlich dafür. Aber da habe ich angesichts deiner Worte weiter oben so meine Zweifel. W.S.
W.S. schrieb: >> was das genau wäre, würde mich echt mal interessieren. > > Lies die zugehörigen Manuals selber, dann siehst du es - vorausgesetzt, also keine. Trotzdem danke.
W.S. schrieb: > Lies die zugehörigen Manuals selber, dann siehst du es - vorausgesetzt, > du interessierst dich tatsächlich dafür. Aber da habe ich angesichts > deiner Worte weiter oben so meine Zweifel. Du schreibst, in beleidigender Tonart, jemanden anders, dass er das Manual lesen soll. Selber ließt du aber nicht das C Manual und beschimpst andere als ewige Besserwisser bei einem Hinweis zu Fehlern von dir. Das ist schon sehr frech von dir! Deine Ansprüche gelten nicht für dich selber?
meow schrieb: > Das ist schon sehr frech von dir! > Deine Ansprüche gelten nicht für dich selber? Lass' mal. Wir sind doch nicht zur Vermittlung von Kinderstube hier. Die hat man entweder, oder eben nicht.
PIC, sparsame Lösungen bei der HW. Man kann z.B. auf den Quarz verzichten, wenn die Frequenz des erstaunlich stabilen int. Osz. (sh. DB) ausreichend ist. mfG fE
:
Bearbeitet durch User
Frank E. schrieb: > Man kann z.B. auf den Quarz > verzichten, wenn die Frequenz des erstaunlich stabilen int. Osz. (sh. > DB) ausreichend ist. das haben viele andere moderne Designs ebenso - kein Grund, sich einen PIC anzutun.
Sandförmchen, günstige Sandförmchen, leuchtende Farben, robust und haltbar, SANDFÖRMCHEN.....
Rudi R. schrieb: > Und wenn das so ist, warum gibt es dann 3 unterschiedliche Macros um auf > 1 zu setzen und 2 um zu nullen?Ist das normal? Rudi R. schrieb: > 1. PORTA_RA0_POSN equ 0000h > 2. PORTA_RA0_POSITION equ 0000h > 3. PORTA_RA0_SIZE equ 0001h > 4. PORTA_RA0_LENGTH equ 0001h > 5. PORTA_RA0_MASK equ 0001h Das sehe ich ein wenig anders: 1. und 2. RA0 ist an Bitposition 0 3. und 4. RA0 beinhaltet nur 1 Bit 5. mit einem einzigen Bit kann es maskiert werden Aus Assemblersicht sieht das etwa so aus: SET RA0 ; wird zu SET PortA, 0 ; setzt Byteadresse, Bitnummer auf 1 bzw. bei lesender Benutzung SKIP RA0 ; wird zu BTFSS PortA, 0 ; Überspringt wenn Byteadresse, Bitnummer gesetzt ist Da jeder dieser Befehle für sich ein einzelner Befehl ist, können Byteadresse und Bitnummer als Adresse für die boolean Variable RA0 zusammengefaßt werden. Das ergibt eine atomare Operation bei boolean Variablen (ggf. ne Ausnahme bei Ports in bestimmten Fällen). Und um das Ganze beschreibungsgerecht in eine Include-Datei zu fassen, dienen dann die besagten obigen Definitionen. W.S.
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.