Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter fuer schwierige und grosse Gaerten im Test

K (vorgeschlagene Gliederung)
K (vorgeschlagene Gliederung)
Zeile 52: Zeile 52:
 
** Codeschnipsel
 
** Codeschnipsel
 
*** <span style="color:green;"> A/D-Wandler </SPAN>
 
*** <span style="color:green;"> A/D-Wandler </SPAN>
*** Hex in Dez Wandeln
+
*** Hex in BCD Wandeln
 
*** PWM
 
*** PWM
 
*** Interrupts
 
*** Interrupts

Version vom 14. April 2007, 18:42 Uhr

vorgeschlagene Gliederung

grün = schon fertig, orange = wird bzw. könnte noch ergänzt werden

  • Einladung zur Diskussion...

(wird nach Beendigung des Artikels gelöscht)

  • Einführung
    • Bit, Byte, Nibble, Bin und Hex
    • Speicher und Register
    • Prozessor
    • Assembler
    • Grundbeschaltung
    • Wahl des PICs
  • Programm
    • Allgemeines
    • Programdurchlaufdiagram
    • Hauptprogramm
    • Unterprogramm
      • Initialisierung
        • Variablen
        • I/O Ports
        • Hardware
      • Einlesen
      • Ausgeben
      • Pause
      • Schnittstellen und Treiber
      • Tabellen
      • EEPROM
  • Vorlage für MPASM
  • Für anderen PIC umschreiben
  • Das erste...
  • Interrupts
    • Prinzip
    • Quellen
    • Interrupt Service Routine
  • Optimierung
    • Speicherbedarf
      • Programmspeicher
      • RAM
    • Ausführungszeit
  • Fehlersuche
  • Mid-Range (mit 14 bit Befehlslänge)
    • Kurzübersicht Prozessorbefehle
    • Ausführliche Beschreibung zu den Befehlen
    • Besondere, oft gebrauchte Register
      • STATUS
      • INTCON
      • TRIS
      • PORT
    • Bänke (sowohl die bei mehr als 2k Befehle als auch die bei den normalen speicher bänken)
    • Flagsüberprüfung im STATUS-Register
    • Codeschnipsel
      • A/D-Wandler
      • Hex in BCD Wandeln
      • PWM
      • Interrupts
      • RS232 mit PC
      • Tasten
      • Mausrad
      • Ausgabe auf LCD Displays
        • Dot-Matrix
        • Grafik
        • Handy
      • Hilfsmittel
        • PIC Miniterminal (mit Dot-Matrix LCD und drei Tasten, benötigt nur 2 I/O Pins und 2 ICs)(Hardware)
        • PIC RAM Monitor (mit eigenem Interrupt, zeigt Registerinhalte sogar wenn das Programm in endloser Schleife läuft, was besonders für Anfänger nutzlich ist, benötigt Display oder PIC Miniterminal)
        • PIC Trainer (Hilfswerkzeug für PIC Versuchsprogramme, benötigt PIC Miniterminal)
        • PIC Profiler (zum messen von Ausführungszeit zwischen call und return, benötigt Display oder PIC Miniterminal)
  • High-End (mit 16 bit Befehlslänge)-->(?)

Allgemeines


... gelöschte Diskussion ...


joa. passt doch. ich mach dir dann wieder paar bilder. mal schaun ob ich es heute noch schaffe. Benedikt.Seidl 08:52, 1. Apr 2007 (CEST)


Vielen Dank im voraus!:) Wenn Du die drei Symbole die im PAD auftreten einzeln kopieren kannst, müsste es ziemlich schnell gehen. Nach der neuer Gliederung müsste ich jetzt über Quellcode schreiben, also schon (aber nur) "call" und "goto" einführen. Sonst werde ich alles im Textform (Kommentar) schreiben. Ich meine, dass es unvermeindbar ist, weil irgendwan es sowieso anfangen wird. Ich habe noch eine Frage an Dich. Würdest Du die MPASM Direktiven erklären, die ich von "deinem" in "mein" Teil verschoben habe?PICture 09:33, 1. Apr 2007 (CEST)


wie meinst du? ich mache halt noch eine erklärung für alle befehle, brauche nur noch bisschen zeit, werde heute leider nicht dazukommen, da ich unterwegs bin :-/ aber in absehbarer zeit werde ich auch noch die anderen befehle beschreiben, und dann mir ein neues thema suchen ;-) Benedikt.Seidl 18:54, 1. Apr 2007 (CEST)


Es hat sich schon erledigt. Ich habe es als unnötig gestuft und gelöscht. Ab jetzt wird ganz einfache Darstellung von PADs verwendet und es bleibt nur einer in Grafik zu verwandeln (PAD). Die alle anderen (PAD1, PAD2, PAD3, PAD4, und die noch kommen...) bleiben so, wie sie sind/werden. Und weiter würdest Du (hoffentlich) nichts mehr für mich zu tun haben. :)PICture 00:12, 2. Apr 2007 (CEST)


jetzt wollte ich mir ein neues thema raussuchen, was ich noch schreiben könnte, aber muss irgendwie zugeben, dass ich mit den befehlen schon mit meinem latein am ende bin :-/ also ich könnte schon bisschen was schreiben, aber so richtig sicher bin ich mir dabei dann nicht immer. Benedikt.Seidl 12:25, 5. Apr 2007 (CEST)


Macht ja nichts. Wir arbeiten an dem Artikel bis zum Ende zusammen. Du hast mir schon viel geholfen, dann helfe ich Dir auch immer wieder. Ich versuche möglichst kurz das wichtigste schreiben, aber weiss ich selber nicht, ob das verständlich ist, da ich das alles sehr gut verstehe :). Was Dir nicht gefällt oder nicht genug verständlich ist kannst Du immer ändern (so wie bei der Grundbeschaltung) oder fragen (so wie mit den Buchstaben "C" und "F"). Wie Du sicher bemerkt hast, habe ich in den Befehlen auch ein bischen geändert. Jemand hat gesagt : "Es gibt keine dumme Fragen, nur dumme Antworten" und das stimmt!. Also keine Angst! :) Es gibt auch PN. Für mich ist Deine Meinung sehr wichtig! Ich denke, dass bis Interrupts sollte es schon für Anfänger ausreichen, bin mich aber auch nicht sicher wo eigentlich Ende vom Anfang ist. :) PICture 14:24, 5. Apr 2007 (CEST)


wow! respekt! geht ja ganz schön schnell voran. das eine pad bekommst du auf jeden fall noch, brauche leider noch ein paar tage. noch dazu müsste ich langsam wirklich fürs abi lernen, aber solange noch andere dinge gehen, werde ich auch hier noch bisschen was machen ;-) Benedikt.Seidl 12:37, 8. Apr 2007 (CEST)


Mach Dir bitte mit dem Artikel keinen Stress, ich versuche bloss die freie Tage sinvoll nutzen.:). Es wird danach langsamer gehen, aber die Zeit ist nicht beschränkt. Sogar für die schon als fertig markierte Sachen schreibe ich immer wieder was dazu, was mir noch einfällt.PICture 16:11, 8. Apr 2007 (CEST)


Bit, Byte, Nibble, Bin und Hex 

also ich würde schon die nummerierung der bits mit aufnehmen. habe mich lange gefragt, wie das funktioniert, weil man ja normalerweise von links nacht rechts zählt und mit 1 anfängt. Benedikt.Seidl 21:28, 9. Apr 2007 (CEST)


Natürlich! :) Die Numerierung der Bits ist bei jedem Prozessor gleich und fängt immer von links mit 0 (LSB). Ich habe schon eine Idee für erstes ASM Programm, das wird aber noch ein bischen dauern, weil ich das zuerst selber ausprobieren muss (und will). Aber es ist noch weit zum Ende des Artikels. PICture 09:27, 10. Apr 2007 (CEST)


mein fehler. habe da wohl was verwechselt. sorry. die zahlen sind ja doch noch da :-/ Benedikt.Seidl 12:52, 10. Apr 2007 (CEST)


@Benedikt.Seidl

Schau, bitte, am Anfang des Artikels habe ich noch was neues eingefügt. Als Folge haben wir noch einen Autor (den Gärtner), der schon wichtige Sachen toll ergänzt hat.

@Gärtner

Wenn Du willst, kannst auch etwas neues, wass noch nicht grün gekenzeichnet ist, anfangen. :) PICture 13:17, 10. Apr 2007 (CEST)


wow! glückwunsch! http://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14953 Benedikt.Seidl 16:13, 10. Apr 2007 (CEST)


Für Dich das gleiche ! Trotzdem schreibe ich weiter.:)PICture 16:59, 10. Apr 2007 (CEST)


Keine Angst, hab auch neues geschrieben ;) Hat wer eine bessere Idee bezüglich Textformation von SFRs? hab mich mal am Datenblatt bedient. Die Assemblerbefehle hab ich heute schon in einen eigenen Artikel geschrieben. Da fehlen nur noch Codeschnippsel. find das Übersichtlicher und werde die DETAILs zu den befehlen von hier bald RAUSLÖSCHEN. (wenn ich mit dem anderen Artikel fertig bin.) --Der Gärtner 18:06, 10. Apr 2007 (CEST)


Die Asführliche Beschreibung zu den Befehlen hat der Benedikt.Seidl geschrieben, aber ich glaube, dass er nichts dagegen hätte. Dann werden die Codeschnipsel auch dorthin verschoben, oder ? Es wäre gut wenn Du das Link zu Deinem Artikel in diesen Artikel einfügst. Ich weiss nicht wo ich später die Hifsmittel (kleine Programmierwerkzeuge) hin schreiben soll.PICture 18:33, 10. Apr 2007 (CEST)

ich finde es schon sehr schade, weil das schon viel arbeit gemacht hat hier. das tabellenlayout hat auch vor und nachteile. aber ich versteh nicht, warum du nicht auf meine beschreibung und code-schnipsel zurückgreifst, bzw. meine befehlsliste ergänzt hast? deine infos bzw. beschreibungen sind wahrscheinlich schon technischer und auch ok, aber für den normalen benutzer oder einsteiger sehe ich es eher als hindernis, wenn so komplizierte beschreibungen verwendet werden.
trotzdem finde ich es schön, dass du mitarbeitest, gärtner ;-) Benedikt.Seidl 19:18, 10. Apr 2007 (CEST)

@ Gärtner

Ich denke auch, dass Löschen nicht nötig ist und Dein Artikel wunderbar als Nachschlagewerk benutzt werden kann, wenn sein Link in diesem Artikel eingefügt wird.PICture 19:31, 10. Apr 2007 (CEST)


@ Gärtner

Erst heute habe ich Dein Artikel aufmerksam durchgelesen und folgendes nicht gut gefunden:

- die Wörter "verundert", "verodert" und "inklusiv verodert" sind vielleicht "cool" aber für jemanden die die logische Operationen gar nicht kennt, ganz unverständlich.

- bei "call" und "retlw" ist überhaupt nichts über funktionsweise im ASM Programm geschrieben, nur über Register, was nicht besonders wichtig ist. Bei "retfie" fehlt die wichtige Information, dass ausführen des Befehls das Bit GIE setzt, was die Interrupts wieder erlaubt.

- bei "clrw" ist falsches Register und bei "end" falsche Funktion gennant. Ausserdem, ich kenne Keine Pseudobefehle, sondern Direktiven für Assemblerprogramm.

Ohne Beipielen vom Code finde ich das ganze ungeeignet für Anfänger. Bleiben wir, bitte, in dem Artikel, der vor allem für Anfänger vorgesehen ist, bei der ausführlicher Beschreibung vom Benedikt.Seidl.PICture 09:08, 11. Apr 2007 (CEST)


Code kommt noch, und fehler sind echt vorprogramiert gewesen :) Ich hab noch einiges an Dingen vor gehabt, die sowieso hier stehen. Die Begriffe "verundet" und "verodert" sind die einzigen, die ich jemals gehört habe, und JA, ich hab vor beispiele zu Schreiben / vom Seidl zu nehmen. Und wenn ich so scharf aufs Löschen wäre, dann hätt ichs schon gemacht :P

Den Begriff "Pseudobefehle" hab ich vom Sprut, kann ich ruhig ändern.

Werd heute da einiges ergänzen und die Register in diesem Beitrag weiter machen. --Der Gärtner 11:09, 11. Apr 2007 (CEST)


@Gärtner

Das hört sich sehr gut an. Deine Beschreibung von Befehlen ist auch nötig, da kann man sofort die Beschreibung für ein Befehl lesen, das man braucht. Sie hat aber sehr langen Inhaltverzeichnis, länger, als dieser ganzen Artikel. Deswegen finde ich die Idee, das getrennt vom Artikel zu machen sehr gut.:) Übrigens, für mich ist der Sprut kein Experte und ich versuche immer mich an der Dokumentation vom Microchip (z.B. MPASM) zu halten um das ganze einheitlich zu gestalten. Es wäre auch eine Möglichkeit, um unnötige Arbeit zu vermeinden, einfach die ganze Beschreibung vom Seidl in Dein Artikel zu übernehmen (eventuell bischen ergänzen) und danach von unserem Artikel löschen und in dem Menüpunkt "Ausführliche Beschreibung zu den Befehlen" nur den Link zu Deinem Artikel lassen. Das scheint mir sogar optimale Lösung zu sein. Ich habe genauso bei "Interface und Treiber" gemacht. Ich werde erst am Wochenende wieder aktiv.PICture 19:02, 11. Apr 2007 (CEST)


Habe den Register INTCON beschrieben... --Der Gärtner 09:07, 12. Apr 2007 (CEST)


Habe schon dort bischen geändert... Hoffentlich gefällt Dir. :)PICture 09:56, 12. Apr 2007 (CEST)


Ich würde die Register ANSEL und TIMER nicht speziell und so alleine beschreiben. Die gehören entweder zu den ADCs oder zu den einzelnen Timern. "ANSEL" ist z.b. einer von mind. 4 Registern, die von den ADCs benutzt werden. das Selbe gilt für Timer (stichwort TMR0-2 unterschiedliche Architektur/CCPM/PWM...)

@PICture: passt sehr gut, man sieht ich hab die Matura, aber auch, dass ich NICHT in Deutsch maturiert habe - da fehlts an Retorik, Grammatik und Einfühlungsvermögen für nichteingeweihte beim schreiben ;) --Der Gärtner 22:48, 12. Apr 2007 (CEST)


Kleine Frage am Rande, alle Pins an allen Ports der Midrangeserie sind BIDIREKTIONAL - oder...? Ich bin über einen 18F gestolpert, der da aus der Reihe tanzt. (4550er, die USB-Pins...)--Der Gärtner 22:53, 12. Apr 2007 (CEST)


@Gärtner

"Nobody is perfect". Beim jedem Lesen des Artikels finde ich Fehler die ich bisher übersehen habe. Überprüfe noch Deine Logiktabelle für XOR. So wie ich weiss, 1,1->0. XAND kenne ich nicht.

Wenn es um Mid-Range PICs geht, da sind alle Pins an allen Ports bidirektional. Aber bei fast allen diesen PICs gibt es einen Portpin, der nur open drain ist (z.B. beim 12F629 GPIO,3) und ohne pull-up keine 1 ausgeben kann. Übrigens, was sind "Fusebits" ? Ich (und wahrscheinlich jeder Anfänger auch) habe noch nicht gehört. Ich vermute, dass sich hier um "configuration bits" handelt, es müsste aber irgendwo in unserem Artikel definiert werden. Vielleicht am Ende des Artikels machen wir noch ein "Wörterbuch" für Anfänger ?

Ich freue mich sehr, dass immer mehr Autoren des Artikels gibt. Der nächste, aber fast sicher nicht der letzte, ist der BMS, der gerade ein Codeschnipsel für ADC geschrieben hat. Je mehr Autoren um so besser. Die vorgeschlagene Gliederung ist noch offen und kann jederzeit von jedem geändert werden (z.B. bei der Registerbeschreibung)

@BMS

Dein Codeschnipsel finde ich sehr gut, nur Kleinigkeit gefällt mir nicht: die Kommentare zu den Befehlen befinden sich dazwischen und nicht wie üblich rechts, was den Codefragment schwer durchschaubar macht. PICture 07:50, 13. Apr 2007 (CEST)


@Gärtner

Heute früh habe ich Deinen Artikel durchgelesen und mehrere Fehler gefunden. PICture 07:20, 14. Apr 2007 (CEST)



LiFePO4 Speicher Test