Hallo, wie kann ich ganz simpel einen Servo über einen Pic ansteuern? Kann mir jemand ein "Assembler Standardprogramm" geben, bei dem sich z.B. durch Taster Betätigung der Servo 90° dreht? Danke im voraus.
:
Gesperrt durch User
für AVR: http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung http://www.mikrocontroller.net/articles/AVR-Tutorial:_Servo für PIC: sprut.de schauen
Im Programm des 2. Links steht oben das der Servo an einem beliebigen Pin an Port B angeschlossen wird. Im Programm selbst steht aber bei "servoPuls": out PortD, r16 Müsste dann nicht out PortB stehen? und steht r16 für Pin 16? Danke im Voraus
Bionade schrieb: > Im Programm des 2. Links steht oben das der Servo an einem beliebigen > Pin an Port B angeschlossen wird. Im Programm selbst steht aber bei > "servoPuls": out PortD, r16 > Müsste dann nicht out PortB stehen? Richtig. Tatsächlich ist es aber ein Tippfehler im beschreibenden Text. Um das Programm von Port D auf Port B umzustellen, müssen auch noch andere Dinge angepasst werden (zb die DDRx Register-Bezeichnung) > und steht r16 für Pin 16? Nein. Das steht für Register r16. Zurück an den Anfang und das Assembler Tutorial von vorne durchmachen.
ok, also da ich nur einen PIC 16F84 hab und mir nur PortA bzw. PortB zur Vervügung stehen, muss ich eigentlich nur statt PortD, PortB schreiben bzw. DDRB. Ansonsten bleibt alles gleich, richtig?
Bionade schrieb: > ok, also da ich nur einen PIC 16F84 hab und mir nur PortA bzw. PortB zur > Vervügung stehen, muss ich eigentlich nur statt PortD, PortB schreiben > bzw. DDRB. Ansonsten bleibt alles gleich, richtig? Falsch, Ein PIC ist ein völlig anderer Prozessor. Der funktioniert anders, hat andere Befehle, andere On-Board Hardware mit anderen Konfigurationsregistern und die Bits in den Konfigurationsregistern heißen auch anders und bedeuten etwas völlig anderes. Kurz und gut: Mit dem Programm kannst du so erst mal nur eines anfangen: Du kannst dir ansehen, wei das in AVR Assembler in diesem Beispiel gemacht wurde (und ich muss zugeben, dass dieses Beispiel nicht wirklich das gelbe vom Ei ist, wird Zeit dass ich die restlichen noch ausstehenden Fälle ergänze) und dann das Programm mühsam nach PIC übertragen. Ist aber nicht sehr sinnvoll. Denn was das Ziel ist, kannst du auch hier nachlesen Modellbauservo Ansteuerung und eine Warteschleife, die eine bestimmte definierte Zeitdauer abwartet, solltest du in Assembler schon alleine hinkriegen. Selbst wenn das im Endeffekt nicht die Methode ist, die man beim Roboterbau benutzen wird.
Tut mir leid aber was soll bitte der Unterschied von AVR Assembler und PIC sein?...das eine ist doch das Programm für das andere oder vertreh ich jetzt was? Denn irgendwie muss ich doch den Servo mittels PIC steuern können und nicht nur durch einen Empfänger?
Tut mir leid, aber was soll jetzt der Unterschied ziwschen Englisch und Kisuaheli sein. Beides sind doch Sprachen mit denen sich Menschen verständigen können. Warum versteh mich der Buschmann nicht, wenn ich Englisch mit ihm spreche? Weil Kisuaheli eben nicht gleich Englisch ist! Weil PIC eben nicht gleich AVR ist! Wenn du einen PIC programmieren willst, dann musst du schon in seiner Sprache mit ihm sprechen. http://www.sprut.de/electronic/pic/index.htm
Der Vergleich passt irgendwie garnicht. Da Pic keine Sprache sondern ein Hardwarekomponent ist, welcher in der Sprache Assembler beschrieben werden kann.
Der Vergleich passt schon, wenn man weiß wovon man spricht. Assambler für PIC != Assambler für AVR Die beiden haben unterschiedliche Befehlssätze, andere Register usw. Gruß Jürgen
Schon klar aber dann sind es immer noch die selben Sprachen. Man könnte es höchstens mit Dialekten Vergleichen. Wenn man weiß wovon man spricht!
Hi >Schon klar aber dann sind es immer noch die selben Sprachen. >Man könnte es höchstens mit Dialekten Vergleichen. >Wenn man weiß wovon man spricht! Aber nur, wenn man es weiß. Welche Prozessoren/Controller hast du schon in Assembler programmiert, das du das beurteilen kannst? MfG Spess
Bionade schrieb: > Schon klar aber dann sind es immer noch die selben Sprachen. Der Vergleich geht ja auch eher so PIC <==> Amerikaner, der Englisch spricht AVR <==> Buschmann, der Kisuaheli spricht > Man könnte es höchstens mit Dialekten Vergleichen. Nö, kann man nicht. Beide Sprachen, Englisch und Kisuaheli werden durch Laute gebildet. Da ist also die Gemeinsamkeit. Genauso wie beide "Assembler-Dialekte" als einzige Gemeinsamkeit die Verwendung von Buchstaben aus dem lateinischen Alphabet haben. Wenn dir das genügt um von Dialekten zu sprechen, meinetwegen Aber du wirst es schwer haben, mir Englisch und Kisuaheli als 2 Dialekte derselben Sprache zu verkaufen. > Wenn man weiß wovon man spricht! Du sagst es: Wenn man weiß wovon man spricht.
Aso bestimmt un mit was willst du dann C und Assembler vergleichen? Mit Welten?...anscheinend hat hier keiner von euch richtig Ahnung!
Solche Vergleiche haben eigentlich keinen großen Nutzen, aber da wir ja alle zusammen so schön darauf herumreiten probier ich's mal ;-) C wäre dann so eine Art globale Sprache, die vom jeweiligen Assambler in den Assembler-Code für den entsprechenden Controller übersetzt werden kann. Die Namen/Adressen der Register, Ports usw. im jeweiligen Controller muss man trotzdem wissen, hierfür legt man sich dann in C einprägsame Namen an, so Ähnlich wie Städtenamen, damit man nicht immer in Koordinaten beschreiben muss wohin man in Urlaub fährt ;-) Gruß Jürgen
> Man könnte es höchstens mit Dialekten Vergleichen. Dialekte in Zusammenhang mit Assembler könntest du mit Vorsicht anwenden bei gleichartigen Prozessor-Familien. So gibt es (sowohl in der PIC als auch in der AVR-"Welt") verschieden gut und umfangreich ausgestattete Controller, z.B. welche mit mehr oder weniger Speicher, mehr oder weniger Schnitttsellenvarianten etc.
Juergen schrieb: > Solche Vergleiche haben eigentlich keinen großen Nutzen Das stimmt wohl...aber "Karl Heinz Buchegger" glaubt ja scheinbar alles besser zu wissen.
Da man bei PWM aber hauptsächlich die Hardware benutzt die in den µC eingebaut ist (und diese komplett anders ist) macht es wenig bis überhaupt keinen sinn soetwas zu tun (eine konvertierung). Einen Algorythmus von einer architektur zur anderen zu portieren macht mehr Sinn und zwar am meißten wenn man eine Hochsprache wie C,Pascal usw. verwendet und standartlibrarys verwendet bzw. units. Auch schon die unterschiedliche Prozessorarchitektur kann große probleme bereiten (z.B. bedingte Ausführung von Befehlen im eigentlichen Opcode, unterschieliche adressierungsarten und Datenpfade wie Harvard und von Neuman Architektur. (Bring mal sich zur Laufzeit verändernden Code auf ner Harvard Maschine zum laufen !). Das soll aber nicht heißen das es nicht geht, der resultierende Code ist halt suboptimal ( oder auch Sch..e genannt) Jedesmal wenn der Code sich ändert den entsprechenden Block im Flash Erasen und neu Flashen. Oder die Adressierungsart als Unterprogramm implementieren. Wenn dann auch noch Architektur spezifische Hardware wie FFT Beschleuniger oder ein Programmierbarer Interuptcontroller benutzt werden ist es einfacher die Architektur zu wechseln. Oder hast du ne Idee wie man die Interuptpriorität verändert wenn sie festgelegt ist und man eine andere Reihenfolge braucht um die Korreckte Funktion zu erhalten. Kurz und knapp Mikrocontroller ist auch nicht gleich CPU. Eine CPU zu wechseln wenn der Code in einer Hochsprache geschrieben ist kann gut klappen. Das ganze System mit perepherie zu wechseln heißt das man trotzdem den Code umschreiben muß (und zwar erheblich).
uwe schrieb: > Das ganze System mit perepherie zu wechseln heißt das man > trotzdem den Code umschreiben muß hat ja niemand was dagegen gesagt.
Bionade schrieb: > Juergen schrieb: >> Solche Vergleiche haben eigentlich keinen großen Nutzen > > Das stimmt wohl...aber "Karl Heinz Buchegger" glaubt ja scheinbar alles > besser zu wissen. Na ja. Um dich zu übertrumpfen reicht es alle mal. Der Vergleich war eigentlich dazu gedacht, dir klar zu machen, dass Assembler eben nicht gleich Assembler ist. So wie es verschiedene gesprochene Sprachen gibt, die unterschiedlich funktionieren, so gibt es auch unterschiedliche Assembler Sprachen. Nämlich für jede Prozessorfamilie eine eigene. Die ist nicht genormt oder sonst irgendwie festgelegt, sondern der Hersteller des µC denkt sich da aus was ihm gefällt und was sich durch die Architektur des µC aufdrängt.
Karl Heinz Buchegger schrieb: > Um dich zu übertrumpfen reicht es alle mal. 1. Das kann gut sein, da du wahrscheinlich um einiges älter als ich bist. 2. wirklich weiterhelfen konntest oder wolltest du mir trotzdem nicht. 3. In diesem Beispiel hast du dir eher ein Eigentor geschossen.
Bionade schrieb: > Karl Heinz Buchegger schrieb: >> Um dich zu übertrumpfen reicht es alle mal. > 1. Das kann gut sein, da du wahrscheinlich um einiges älter als ich > bist. Da kannst du einen drauf lassen > 2. wirklich weiterhelfen konntest oder wolltest du mir trotzdem nicht. In dem Punkt hast du recht. Und ich sag dir auch warum: Weil ich von PIC nichts verstehe. Ich kann dir in 3 Minuten auf einem AVR eine Servoansteuerung bauen, aber von PIC habe ich keine Ahnung. Mein 'Schieben', dass du doch bitte aufhören sollst AVR und PIC als dasselbe anzusehen und dich im PIC Lager erkundigen und nach Beispielen suchen musst, hast du als persönlichen Angriff aufgefasst. Du wolltest ganz einfach nicht wahrhaben, dass das verschiedene Prozessoren sind, und du ausser der Idee einer Servoansteuerung aus den AVR Beispielen nichts mitnehmen kannst. Aber so sehr du auch mit dem Fuss aufstampfst und "ich will" schreist, das lässt deinen µC unbeeindruckt. Siehe zb das 8. Posting von oben (ich kann von hier aus leider keinen Link setzen) > 3. In diesem Beispiel hast du dir eher ein Eigentor geschossen. Danke für den Lacher.
TROLLololllooo lololooo lolloloooo TROLL ich frage mich warum noch irgendjemand dem & Robo schreibt??!!
Karl Heinz Buchegger schrieb: > Weil ich von PIC nichts verstehe Ok es kam eben für mich so rüber als ob du davon Ahnung hättest und mir nicht weiterhelfen wolltest. Karl Heinz Buchegger schrieb: > Du wolltest > ganz einfach nicht wahrhaben, dass das verschiedene Prozessoren sind Doch du hast dich nur etwas undeutlich ausgedrückt, sodass es bei mir zu Verwirrung kam. steffen schrieb: > TROLLololllooo lololooo lolloloooo TROLL ich will nicht "rum trollen", ich wollt nur eine nützliche Antwort, welche ich mitlerweile nach 10000 unnützlichen Komentare hier, in einem anderem Beitrag bekommen hab, da die meisten hier scheinbar nur auf Diskussionen aus sind Karl Heinz Buchegger schrieb: > Danke für den Lacher. Ich hab nicht so einen lächerlichen Kuhmist wie du hier mit den Vergleichen geschrieben ;)
Bionade schrieb: > ich will nicht "rum trollen", ich wollt nur eine nützliche Antwort, > welche ich mitlerweile nach 10000 unnützlichen Komentare hier, in einem > anderem Beitrag bekommen hab, da die meisten hier scheinbar nur auf > Diskussionen aus sind Ja ne klar: Bionade schrieb: > Der Vergleich passt irgendwie garnicht. Da Pic keine Sprache sondern ein > Hardwarekomponent ist, welcher in der Sprache Assembler beschrieben > werden kann. Bionade schrieb: > Schon klar aber dann sind es immer noch die selben Sprachen. > Man könnte es höchstens mit Dialekten Vergleichen. > Wenn man weiß wovon man spricht! Große Worte für jemanden, der es angeblich nicht mal schafft, einen Servo zum laufen zu bekommen, geschweige denn weiß, dass Assembler verschiedener so unterschiedlicher Plattformen doch tatsächlich nicht kompatibel ist, meinst du nicht auch? Troll.
gaast schrieb: > geschweige denn weiß, dass Assembler > verschiedener so unterschiedlicher Plattformen doch tatsächlich nicht > kompatibel ist, meinst du nicht auch? was labersch du gaast schrieb: > Troll. Du trollst doch gerade. Troll.
Hi >Ich hab nicht so einen lächerlichen Kuhmist wie du hier mit den >Vergleichen geschrieben ;) Nur zur Erinnerung: Das Ganze fing doch erst an, als du diesen Müll geschrieben hast: >ok, also da ich nur einen PIC 16F84 hab und mir nur PortA bzw. PortB zur >Vervügung stehen, muss ich eigentlich nur statt PortD, PortB schreiben >bzw. DDRB. Ansonsten bleibt alles gleich, richtig? MfG Spess
spess53 schrieb: > Nur zur Erinnerung: Das Ganze fing doch erst an, als du diesen Müll > geschrieben hast mit dem mist meinte ich auch die Vergleiche. Lese erst alles richtig durch bevor du irgendwas behauptest
spess53 schrieb: > Nur zur Erinnerung: Das Ganze fing doch erst an, als du diesen Müll > geschrieben hast: Meine Güte, fütter ihn doch einfach nicht, dass es ihm von Anfang an nicht etwa um hilfesuche sondern ums trollen ging, sollte ja mittlerweile klar sein.
gaast schrieb: > Meine Güte, fütter ihn doch einfach nicht, dass es ihm von Anfang an > nicht etwa um hilfesuche sondern ums trollen ging, sollte ja > mittlerweile klar sein. Sagte der Obertroll
Hi
>Lese erst alles richtig durch bevor du irgendwas behauptest
Dann kannst du mir Unwissenden die Stelle Zeigen, wo das steht.
MfG Spess
Karl Heinz Buchegger schrieb: > Tut mir leid, aber was soll jetzt der Unterschied ziwschen Englisch und > Kisuaheli sein. Beides sind doch Sprachen mit denen sich Menschen > verständigen können. Warum versteh mich der Buschmann nicht, wenn ich > Englisch mit ihm spreche? > > Weil Kisuaheli eben nicht gleich Englisch ist! Da fing es mit den Vergleichen an ;)
Jungs lasst es gut sein. Was von Bionade zu halten ist, hat er selber eindrucksvoll demonstriert und ändern wird er sich nicht. Manche sind eben in ihrer Borniertheit lernresistent. Ich werd darüber hinwegkommen :-) Kümmern wir uns lieber um Leute, die Hilfe auch annehmen.