Servus aus Wien! Ich möchte mich nun auch hobbymäßig mit uC der Firma AMTEL beschäftigen. Dafür habe ich mir folgende Teile bestellt (und auch schon im Haus): 1 x Bausatz Atmel-Evaluations-Board V2.0.1 von Pollin 1 x DIAMEX ALL AVR Programmer USB-ISP für alle AVR-Controller von Reichelt 1 x ATMEGA 88-20 PU ATMega AVR-RISC-Controller, DIL-28 von Reichelt Bevor ich nun mit dem Zusammenbau des Evaluations-Boardes beginne, habe ich natürlich hier dsbzgl. "herumgeschnüffelt" und mehrere Beiträge und diesen Diskussionsthread gefunden: http://www.mikrocontroller.net/articles/Diskussion:Pollin_ATMEL_Evaluations-Board Der jüngste Beitrag ist ca. von 2012. Meine Fragen nun: In der Stückliste habe ich gesehen, dass jetzt die Entprellbauteilwerte für die Taster auf R=100kOhm und C=100nF sind. Sind damit die Probleme eh schon seit längerem behoben? Gibt es noch weitere Dinge, die man im Zusammenhang mit diesem Board beachten sollte? Bitte nicht bös' sein, dass ich hier so einfach "reinfrage", aber bevor ich mit dem löten anfange, frage ich lieber hier mal. Da dies mein erster Beitrag ist, eine kurze Vorstellung: Ich bin ein älterer Bub (BJ 1951), welcher sich für Elektronik, Technik allgemein und Garten interessiert. Ich habe mein Brot 40 Jahre lang mit der Programmierung kaufm. Applikationen verdient aber von der Hardware / Mikrocontroller weniger Ahnung. Überhaupt will ich immer wissen: "Wie funktioniert das?". Ich lebe in Wien und bitte um nachsichtige Behandlung im Forum (wenn möglich nicht: "... lies zuerst die einschlägigen Fachbücher, du Wiener Altkoffer!" ;-) Meine bisherigen Erfahrungen mit Mikrocontroller kann man hier sehen: http://www.strippenstrolch-stammtisch.de/thread.php?board=6&thread=113 Ich wünsche euch noch eine schöne Woche und bedanke mich jetzt schon für alle Antworten im Bezug auf das Evaluationsboard. Harald
Hi Gut, das du vorher fragst. Ich selbst arbeite mit diesen platinen und bin auch zufrieden, aber vielleicht hilft dir meine Meinung trotzdem. Die 40pol. Fassung würde ich mit einer Textool-Fassung ersetzen. Eine 28pol. passt leider nicht, da müßtest du dann einen Adapter anfertigen. Taster und den ganzen Schnickschnack kannst du auch weglassen. Ein Controller hat intern die Möglichkeit, die Eingänge nach VCC zu binden. Stichwort Pull-Up Widerstand. Auf dem Pollinboard werden die Eingänge aber nach GND gebunden. (PullDown) Ich persönlich spiele natürlich mit Steckbrettern herum, bevor eine Schaltung auf eine Platine kommt und da ich auch Bauteile sparen möchte, nutze ich die internen PullUp. Somit liegt ein Taster (Eingang) zwar logisch falsch, also Signal bedeutet "0", aber das richtet der Controller selbst und die Entprellung ist softwaremäßig auch kein Kunstwerk. Wenn du dich trotzdem mit den Tastern auf der Platine anfreunden möchtest, kannst du sie auch so umlöten, das sie nach GND schalten. Aber im Prinzip macht es da nicht viel Sinn. Wenn du ein Steckbrett nimmst, ein altes 40pol. IDE Flachkabel, dann kannst du dir dieses mit einem Ende an das Steckbrett kleben. So kannst du deine Schaltungen auch einigermaßen stabil aufbauen. Gruß oldmax
Ich hatte ein älteres Pollin Board mal in der Hand und als ich dann von dieser Problematik las habe ich mir das ganze mal mit dem Oszi angesehen und auch Bilder der Ergebnisse gepostet. Müsste so 2009-2010 gewesen sein.
oldmax schrieb: > Gut, das du vorher fragst. Ich selbst arbeite mit diesen platinen und > bin auch zufrieden, Kann ich bestätigen ! oldmax schrieb: > Fassung würde ich mit einer Textool-Fassung ersetzen. Eine > 28pol. passt leider nicht, da müßtest du dann einen Adapter anfertigen. Ich habe auch eine 28Pol ( schmale Ausführung ) in Ebay gefunden, Mit einem kleinem Adapter ( Lochraster ) kann man in den vorhanden IC Sockel einsetzen. Nimm auf jedenfall präzisions Fassungen !
Passen Bauteildrähte gut in die Löcher oder muß gebohrt werden? Wären Sockel/Präz-Buchsen für Quarze, LEDs, Buzzer zwechmäßig? Bei den (roten) Cs auf masseseitig richtigen Anschluß achten wg. EMV. Massepin ist da, wo auf dem C-Gehäuse der lange, senkrechte Strich ist. Taster erst mit Ohmmeter testen. T1 (Kleintransistor?) nicht so stramm einlöten, wie auf Pollin-Bild, um Drähte bei Defekt mit Seitenschneider auftrennen und einzeln auslöten zu können. Gleiches für IC1 (U-Regler?). Kühlblech?
Zuerst Danke für eure Antworten! Thomas der Bastler schrieb: > Mit > einem kleinem Adapter ( Lochraster ) kann man in den vorhanden IC Sockel > einsetzen. Bin ein bißchen ratlos, wie so ein Adapter denn ausschaut. Wenn man Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir dann ein (Handy-) Foto von so einem Adapter posten. Alle anderen die so einen Adapter oder einen Link dafür kennen, natürlich bitte auch. Sind die Taster und der Summer eigentlich fix an bestimmten Ports. Das würde mir nicht gefallen - vielleicht will ich später mal gerade diese Ports für was anderes verwenden. Hier wär doch eine Lösung mit Kabel und Steckkonstakt (Lötstift) besser - oder?
Hi Du hast zum Board eine Beschreibung. Wenn nicht, kannst du diese bei Pollin downloaden. Die LED und der Buzzer sind über Trennstecker zu- abschaltbar. Trotzdem, du brauchst diese Teile nicht, wenn du sowieso m it einem Steckbrett deine Versuche aufbaust. Immer daran denken, µC und Programm ist das Eine, die Peripherie das Andere. Das mit dem Kühlblech hatte ich vergessen. Wenn du deine Platine mit einem üblichen 12 V Steckernetzteil versorgst, kann es aufgrund hoher Verlustleistung zu Erwärmung des Konstantreglers kommen. Mir ist das bisher nicht passiert, da ganz selten Verbraucher über diesen Regler versorgt werden, außer dem Controller, der LED (Versorgungsspannung) und dem Max232 Chip. Der Rest ist dann ein quick 6 dirty Aufbau auf einem Steckbrett und in der Reggel mit separater Stromversorgung. Gruß oldmax
Harald Fuckar schrieb: > Wenn man > Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir > dann ein (Handy-) Foto von so einem Adapter posten. Lade heute Abend paar Bilder von meinen umgebauten Pollin Board
Harald Fuckar schrieb: > Bin ein bißchen ratlos, wie so ein Adapter denn ausschaut. Wenn man > Fotos hier posten kann/darf und Du Lust und Zeit hast, kannst Du mir > dann ein (Handy-) Foto von so einem Adapter posten. Mache mal ein paar bilder heute Abend.
Anbei meine Quick and Dirty Lösung.. Funzt gut..genau so wollte ich haben.
Und hier meine Lösung, vor und Rückseite. Harald Fuckar schrieb: > In der Stückliste habe ich gesehen, dass jetzt die > Entprellbauteilwerte für die Taster auf R=100kOhm und C=100nF sind. Damit funktioniert ohne Umbau von Taster.
Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF geändert, dann klappte es.
Stefan us schrieb: > Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset > Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF > geändert, dann klappte es. Selbst 1 µF ist noch viel zu groß. 100 nF, mehr sollten es nicht sein. Ich denke mal da hat jemand sich um drei Zehnerpotenzen vertan.
Thomas der Bastler schrieb: > Martin schrieb: >> Und hier meine Lösung, vor und Rückseite. > > Gut gelöst.. Deine sieht auch ganz fein.
Danke @Thomas der Bastler und @Martin für die Fotos, das hilft mir weiter! Wenn ich das richtig sehe stecken die Nullkraft-Sockel bei der Thomas-Version noch in der urspr. Fassung und bei Martin sind sie direkt eingelötet, deshalb die Bauteile auf der Platinen-Rückseite. Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich solche Sockel beschaffe. Stefan us schrieb: > Ich konnte den AVR nicht programmieren, weil der Kondensator am Reset > Pin viel zu groß war (ich meine es waren 100µF). Den habe ich auf 1µF > geändert, dann klappte es. In meiner Beschreibung vom Pollin-Evaluationsboard gibt es im Schaltplan gar keinen Kondensator im Zusammenhang mit dem Reset-Button? Die zwei größten Kondensatoren 470uF/47uF (C5/C7) treiben sich beim "Netzteil" herum. Bin ratlos, was Stefanus meint. Ein bißchen OffTopic: Bisher beschaffte ich meine Bauteile immer Online. Vorzugsweise bei Reichelt, Conrad, Pollin (i.d.Reihenfolge). Mein Problem ist mein Standort (Österreich/Wien) wegen der Versandkosten. Gestern hielt ich es nicht mehr aus und wollte Nullkraftsockel, Präzisionssockel, EEPROM24Cxx und ein IDE-Kabel ohne die lästige Online-Wartezeit kaufen und fuhr daher zum Conrad-Markt. Na, da hab' ich aber geschaut: - Fachberatung NULL (der hatte weniger Ahnung als ich). - Nullkraft oder Textool-Sockel: gut, aber hamma nicht. - Präzisionssockel: OK, alle außer DIP-20 waren da. - EEPROM24Cxx: Hamma leida auch nicht. - IDE-Kabel: Schaun's im Regal, bei der Computerabteilung. - Steckerstifte die ins Steckbrett passen zum anlöten ans 40-adrige IDE-Kabel: Was es nicht alles geben soll? Was meint der? Also kurz und gut: Ich werde auch in Hinkunft alles via OnlineShop besorgen. Da hab' ich noch immer alles in einem Schwung bekommen. Und die fachliche Beratung hol' ich mir bei Recherchen in guten Foren, wie eben diesen hier (Dank' euch). Nach diesen Direkt-Kauf-Versuch hat es gar keinen Sinn, den Schlüssel ins Zündschloss zu stecken und voll Hoffnung loszubrausen. Man kriegt eh nix - oder eben nicht das, was man urspr. wollte. Ich glaub' da seid ihr in DE besser dran. Oder? Schöne Grüße aus Wien - Harald.
Harald Fuckar schrieb: > Wenn ich das richtig sehe stecken die Nullkraft-Sockel bei der > Thomas-Version noch in der urspr. Fassung und bei Martin sind sie direkt > eingelötet, deshalb die Bauteile auf der Platinen-Rückseite. > Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann > eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich > solche Sockel beschaffe Hallo Harald, in der Tat finde ich die Martin Version auch besser. Damals bin nicht gleich auf die Idee gekommen. Was Du noch probieren könntest auf die Lochrasterplatine sog. IC Sockel Stiftleiste anzubringen so könntest dierekt in die Platine einlöten. Nullkraft Sockel ( acthe drauf bei Atmega8 und Co. brauchst die sog, schmale Ausführung ) findest bei Ebay. Kondensator an der Reset Leitung gibt es nicht. Ja in der tat die Versandkosten nach Österreich ist teilweise wirklich enorm, warum auch immer. BTW: das Pollin board ist wirklich eine gute Sache, benutze ich seit Jahren ohne Probleme. Kleiner Tipp: die untere RS232 Anschluss geht nicht wenn Du über ISP proggen willst, man muss die obere nehmen.
Harald Fuckar schrieb: > Ich gebe gefühlsmässig der Martin-Version den Vorzug, weil da ist dann > eine Steckverbindung weniger. Jetzt muss ich nur noch schauen, dass ich > solche Sockel beschaffe. Falls Du die Quarze auch gesockelt haben willst. Nimm einfach einen 3er Abschnitt einer Präzisions-Buchsenleiste und drück den mittleren Pin aus dem Plastik raus. Die teuren Quarzsockel von Conrad/Voelkner sind auch nichts anderes (nur optisch etwas "hübscher"). > Ich glaub' da seid ihr in DE besser dran. Oder? Das sind eher regionale Ausnahmen, die Ladengeschäfte sind praktisch ausgestorben. Für Dich gibt es vielleicht noch eine Alternative zu Conrad: http://www.mikrocontroller.net/articles/Lokale_Elektroniklieferanten#Wien Und falls noch nicht geschehen, kannst Du ja auch folgende Liste nach dem Begriff "Österreich" durchsuchen: http://www.mikrocontroller.net/articles/Elektronikversender
Klaus I. schrieb: > Falls Du die Quarze auch gesockelt haben willst. Nimm einfach einen 3er > Abschnitt einer Präzisions-Buchsenleiste und drück den mittleren Pin aus > dem Plastik raus. Genau wie ich gemacht habe ;) Harald Fuckar schrieb: > Jetzt muss ich nur noch schauen, dass ich > solche Sockel beschaffe. Bin nicht ganz Sicher aber ich glaube habe alle ZIF-Sockel da, schaue heute Abend melde mich bei dir, irgendwas können wir aussmachen. Nach Österreicht als Brief ist bestimmt nicht so teuer. Gruß Martin
Klaus I. schrieb: > Die teuren Quarzsockel von Conrad/Voelkner sind auch > nichts anderes (nur optisch etwas "hübscher"). Genau dasselbe ist es nicht, in Präz-Buchsen passen ja auch IC-Pins. Ich habe auch ersatzweise diese Buchsen genommen, funktioniert soweit. Evtl. sollte man noch Isolierscheiben nehmen oder sich etwas einfallen lassen, damit es mit manchen Quarzgehäusen keinen Kurzschluß gibt. Die einzeln für Privat kaum erhältlichen Quarzsockel von Fischer sind bei Voelkner noch preisgünstig, bei Mikrocontroller-Praxis kosten sie 1.60€/Stk.
Bei den Quarzen war ich, glaube ich, voreilig: Ich habe mir bei Reichelt Standardquarze (Grundton) 4MHz, 9,216MHz, 11,059MHz, 7,3728MHz, 16MHz und 20MHz beschafft. Hoffentlich kann ich mit denen etwas anfangen? Derzeit lade ich mir "AMTEL Studio 6" runter. Ich möchte es zum ersten Mal in meinem Computerleben mit ASSEMBLER probieren. Ich glaube, das ist am "Hardware-Nächsten" und man begreift leichter was da geschieht. Sollte ich es nicht begreifen oder schaffen, kann ich ja noch immer auf das leichtere (hoffentlich) BASCOM umsteigen. Was meint ihr?
Harald Fuckar schrieb: > mit ASSEMBLER probieren. Ich glaube, das ist am "Hardware-Nächsten" > und man begreift leichter was da geschieht. Genau die richtige Einstellung. Weiter so! > Sollte ich es nicht begreifen oder schaffen, Gibt's nicht. > auf das leichtere (hoffentlich) BASCOM umsteigen. Abtrünniger! Das gibt Punktabzug.
Hallo, finde ich gut, dass du einsteigen willst. Hätte evtl. auch noch ein paar Textool-Sockel da, den 28.pol sicher nicht.
Habe jetzt die Stückliste kontrolliert: Zuviel vorhanden: 2 x 470 uF ELKO 3 x 100k Widerstände Nicht vorhanden: 2 x Z-Diode 5,1 V 2 x IC-Sockel DIP 8 Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich natürlich keine im Haus. Habe soeben bei Pollin via eMail reklamiert. Bin gespannt wie die mit Reklamationen umgehen. Denn da zeigt sich meiner Meinung nach erst der wahre Servicegrad einer Firma. Servus aus Wien: Harald
Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt Gleichspannung versorge? Oder ist das zu gering?
Da ist doch . soviel ich weiß aus dem Kopf ein 78ß5 drauf..oder ?
Harald Fuckar schrieb: > Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt > Gleichspannung versorge? > Oder ist das zu gering? Harald Fuckar schrieb: > Nicht vorhanden: > 2 x Z-Diode 5,1 V > 2 x IC-Sockel DIP 8 > > Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich > natürlich keine im Haus. http://www.pollin.de/shop/downloads/D810038B.PDF Kannst Du mal in kurzen Worten darlegen, was Dich daran hindert, das HANDBUCH zu lesen, welches Dir sämtliche fragebn beantworten könnte? Da findet man zum Beispiel als Angabe der Betriebsspannung: ~9Volt Dann könnte man sehen, daß die Z-Dioden nur dann gebraucht werden, wenn man das interne Programmierinterface nutzen will.
Thomas der Bastler schrieb: > Da ist doch . soviel ich weiß aus dem Kopf ein 78ß5 drauf..oder ? Ja, darum meine ich, dass der mit 9 Volt zurechtkommen müßte.
Rohri Gallagher schrieb: > Harald Fuckar schrieb: > Tut sich das Evaluationsboard eigentlich kränken, wenn ich es mit 9 Volt > Gleichspannung versorge? > Oder ist das zu gering? > > Harald Fuckar schrieb: > Nicht vorhanden: > 2 x Z-Diode 5,1 V > 2 x IC-Sockel DIP 8 > Blöd, Wiederstände oder ELKO's hätt' ich gehabt. Z-Dioden hab' ich > natürlich keine im Haus. > > http://www.pollin.de/shop/downloads/D810038B.PDF > > Kannst Du mal in kurzen Worten darlegen, was Dich daran hindert, das > HANDBUCH zu lesen, welches Dir sämtliche fragebn beantworten könnte? > > Da findet man zum Beispiel als Angabe der Betriebsspannung: ~9Volt > Dann könnte man sehen, daß die Z-Dioden nur dann gebraucht werden, wenn > man das interne Programmierinterface nutzen will. Ad 9 Volt: Hab' ich übersehen - mea culpa ;-) Ad Z-Diode: Das steht nicht im Text und für den Schaltplanteil fehlte mir das Wissen. Ad Dein rauer Ton: Bitte nicht hauen ... Liebe, nette und freundliche Grüße aus Wien Harald Edit (ist mir noch eingefallen @Röhri): Ratschlag, wenn Dir in Zukunft einer ein bißchen teppat vorkommt, so wie ich zum Beispiel, lass ihn - er ist es nicht wert und Du brauchst Dich nicht ärgern. Dann hat jeder Ruh und das Forum bleibt nett!
:
Bearbeitet durch User
Der Ordnung halber: Pollin hat sich bereits gemeldet und die kostenlose Nachlieferung der fehlenden Bauteile avisiert. Vorbildlich.
Harald Fuckar schrieb: > Ad Z-Diode: Das steht nicht im Text und für den Schaltplanteil fehlte > mir das Wissen. Aha, das konnte ich ja nicht ahnen, daß Dir für den Schaltplan das Wissen fehlt. Das macht aber überhaupt nichts, denn für den Aufbau eigener Schaltungen ist solches Wissen ja vollkommen entbehrlich. > Ad Dein rauer Ton: Bitte nicht hauen ... Rauher Ton, hm.... Den hasst Du noch nicht erlebt... Harald Fuckar schrieb: > Edit (ist mir noch eingefallen @Röhri): Ratschlag, wenn Dir in Zukunft > einer ein bißchen teppat vorkommt, so wie ich zum Beispiel, lass ihn - > er ist es nicht wert und Du brauchst Dich nicht ärgern. Dann hat jeder > Ruh und das Forum bleibt nett! Da ist natürlich was dran. Eben, warum sollte man sich die Mühe machen, Hinweise zu geben, die der Fragesteller ebensogut hätte selbst finden können, wenn er ein wenig nachdenken könnte. Aber egal: Ich werde Dich nicht wieder behelligen und wünsche Dir viel Erfolg beim Stochern im Nebel. Eben so freundliche und nette Grüße Rohri
Hallo, Ich benutze auch das Pollin Eva-Board. Bin zufrieden damit. Meine Schaltungen teste ich aber auf einem Breadboard. Dazu habe ich ein IDE-Flachbandkabel (Pollin Best.Nr. 720296) und einen Rasterplatinen-Adapter (Pollin Best:Nr. 810057) , um das Eva-Board mit dem Steckbrett zu verbinden. Dadurch bin ich unabhängig bei der Pinbelegung (Taster, Led's) die ja beim Eva-Board nur auf PortD liegen. Man kann mit dem IDE Kabel und dem Adapter vom Steckbrett aus auf alle Portpins des AVR zugreifen. Ist ja nur ein Vorschlag. Gruss deka65
Danke @deka65! Habe gleich bei Pollin bestellt. Hab' mir eh schon Gedanken gemacht wie ich möglichst elegant vom Evaluationsboard aufs Breadboard komm'.
Hi Ich hab mal eine kleine Skizze angefertigt, wie die Verbindung zum Steckbrett realisierbar ist. Wenn du dir paasend zum Controller dann kleine Zettelchen anfertigst, einlaminierst und mit Klettband im Bereich der Buchsenleiste befestigst, brauchst du auch nicht immer in den "Schaltplan" schauen. Übrigends, wenn du nicht weißt, wie man einen solchen lesen kann, dann sie zu, das du jemanden findest, der dir das beibringt. Ohne das Wissen um Schaltsymbole wirst du ganz schnell die Lust verlieren. Nicht nur, das du Probleme bekommen wirst, schon eine einfache Diode richtig anzuschließen, du kannst dann auch keine Schaltskizze anfertigen. Das ist aber, auch wenn es hier manchmal nicht so scheint, das A und O, wennn du mit deinen Experimenten irgendwann auch Erfolg haben willst. Es muss nicht immer ein kompliziertes Schaltplanprogramm sein, Paint läßt sich auch ganz gut für einfache Skizzen verwenden. Gruß oldmax
Danke @oldmax für Deine guten Tipps. oldmax schrieb: > ... brauchst du auch nicht immer in den > "Schaltplan" schauen. Übrigends, wenn du nicht weißt, wie man einen > solchen lesen kann ... Nein nein, so schlimm ist es nicht mit mir! Ich hab' den Schaltplan eben nur "überflogen". Das da zwei Z-Dioden sind und welchen Zweck die haben ist mir entgangen. Also welche Symbole es gibt (oder zumindest wo man nachschauen muss wenn man's nicht weiß), wo bei einer Diode vorn und hinten ist, das ein ELKO zwei Seiten hat, wie man einen Transistor positioniert, wie man ein IC zu betrachten hat, wie man die Pin's zählt, wie man ein Datasheet sucht und halbwegs richtig liest, wie das alles zusammenhängt, das weiß ich schon, manchmal gut, manchmal weniger gut - aber da les' ich meistens nach. GottSeiDank gibt's ja Foren und Google ;-) Also so ein totaler Depp bin auch wieder nicht, keine Angst. Aber manchmal komm ich halt ein bißchen "begriffsstützig" rüber. Und ich mag's halt nicht, wenn einer im Forum "ruppig" daherkommt. Manche scheinen nix besseres zu tun zu haben, als unvollkommene Beiträge von unvollkommenen Neulingen zu suchen und denen ordentlich den Marsch zu blasen. Na ja, ist auch ein Zeitvertreib. Schönen Tag noch und Danke - Deine Infos waren sehr hilfreich und werden von mir sicher umgesetzt! P.S: Schaltpläne mache ich mit TinyCad. Guckst Du da: http://www.strippenstrolch-stammtisch.de/thread.php?board=6&thread=113#4
:
Bearbeitet durch User
Thomas der Bastler schrieb: > Kleiner Tipp: die untere RS232 Anschluss geht nicht wenn Du über ISP > proggen willst, man muss die obere nehmen. Und beachten: Man braucht eine "richtige" RS232-Schnittstelle, da diese obere "Schnittstelle" ein extrem vereinfachter Bitbanging-Adapter ist. Bei avrdude "ponyser" genannt. USB-Adapter funktionieren oft nicht und wenn, dann sehr langsam. wendelsberg
Harald Fuckar schrieb: > Habe gleich bei Pollin bestellt. Hab' mir eh schon Gedanken gemacht wie > ich möglichst elegant vom Evaluationsboard aufs Breadboard komm'. Ich habe glaube sowas "übrig"...warte kurz mit der Bestellung. Schaue ich heute Nachmittag nach und mache Dir ein Bild, was ich da habe.
Thomas der Bastler schrieb: > Ich habe glaube sowas "übrig"...warte kurz mit der Bestellung. > Schaue ich heute Nachmittag nach und mache Dir ein Bild, was ich da > habe. Danke Dir! Mach Dir die Arbeit bitte nicht. Hab' schon bestellt.
Kein Problem !..dachte bevor es bei mir "vergammelt".......
Hab' jetzt AtmelStudio6 auf meinem PC fertig installiert. Beim Evaluationsboard muss ich noch auf ein paar Teile warten, bevor ich es zusammenbauen kann. Kann ich eigentlich mit dem AtmelStudio schon was sinnvolles (Simulation) machen, ohne dass ein AVR in echt dranhängt?
ja im Studio kannst du das ganze Programm schritt für Schritt durchgehen. Sieht was die Ausgänge machen und das Programm reagiert auch auf die Eingänge die du per Hand anklicken kannst... Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel Hardware oder kann das schon ein Fremdprogger?
Thomas O. schrieb: > Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel > Hardware oder kann das schon ein Fremdprogger Ich hatte gehofft, dass das mit dem "DIAMEX ALL-AVR Programmer" auch geht. Dort steht nämlich in der Beschreibung "kann direkt mit AVR-Studio 4 benutzt werden". Und daraus schöpfte ich meine Hoffnung, dass das vielleicht auch mit AtmelStudio6 gehen wird. Na ich werd's ja bald wissen ;-)
Thomas O. schrieb: > Aus dem Studio raus programmieren geht meines Wissens aber nur mit Atmel > Hardware oder kann das schon ein Fremdprogger? Habe nur AVR Studio 4.19, Zugriff auf den STK500-kompatiblen Programmer mySmartUSB-MK2 über Menü Tools\Programm AVR\Connect wird abgebrochen, da das myAVR-Board/Programmer-MK2 nicht wie ein originales STK500 die vom Studio angeforderten Werte zurückliefern kann. Im Menü Tools\AVR-Prog... funktioniert aber das Auslesen des ATmega8 auf dem myAVR-Board bzw. das Verifizieren mit einem Hex-File, der zuvor von einem anderen Programm durch Auslesen desselben ATmega8 erstellt wurde. Flashen des µC über dieses Menü konnte ich noch nicht testen, nehme aber an, daß es funktioniert, wenn man dafür den Hex-File o.a. hat. In Studio 6 kann das anders sein, öfter war zu lesen, daß Atmel einiges geändert hat, sodaß es mit myAVR-Produkten nicht mehr läuft.
deswegen sind es die 30€ in einen original Progger von Atmel wert, da klick ich im Studio auf Auto und die Programmierung läuft so ab wie ich es eingestellt habe. z.B. erst löschen, proggen, verifizieren...
Also ich nutze auch schon seit Jahren das Atmel (nicht das von Amtel) Eval-Board von Pollin. In Verbindung mit einem USBasp als Programmer. Bin eigentlich recht zufrieden damit. Seit einigen Monaten programmiere ich in Qt Creator, vorher mit Code::Blocks. Aber jetzt ist es komfortabler und einfacher.
> In meiner Beschreibung vom Pollin-Evaluationsboard gibt es > im Schaltplan gar keinen Kondensator im Zusammenhang mit > dem Reset-Button? > Bin ratlos, was Stefanus meint. Ich habe offensichtlich eine ältere Version von dem Board. Kein Kondensator am Reset Pin ist bei diesem Board sicher auch Ok.
Mathias O. schrieb: > Also ich nutze auch schon seit Jahren das Atmel (nicht das von Amtel) > Eval-Board von Pollin Mein Gott! Jetzt wo Du das so nett unterschwellig ironisch schreibst, fällts mir erst auf, wie doof ich bin: AMTEL statt ATMEL. Na ja, aber um was es geht, haben alle gewusst ;-)
Hallo! Falls hier noch jemand reinschaut. Ich möchte gerne beim "Bausatz Atmel-Evaluations-Board V2.0.1" von Pollin die RS232-Programmierschnittstelle (ISP über D-Sub9-Stecker) weglassen, weil ich ja mit dem "DIAMEX ALL AVR Programmer USB-ISP" auf den 10-poligen Pfostenstecker komme. Dazu kann ich meiner Meinung nach lt. Schaltplan im Bereich "RS232-ISP" alles weglassen (J3, R1, R2, R5, R6, T1, D1, D2 und D3) AUSSER dem Widerstand R3. Könnte bitte jemand der mit Elektronikwissen beschlagen ist, anhand der angehängten Beschreibung (Schaltplan auf Seite 6) prüfen, ob ich da eh nicht schief liege. DANKE! Harald
Harald Fuckar schrieb: > Dazu kann ich meiner Meinung nach lt. Schaltplan im Bereich "RS232-ISP" > alles weglassen (J3, R1, R2, R5, R6, T1, D1, D2 und D3) AUSSER dem > Widerstand R3. So ist es.
Harald Fuckar schrieb: > Danke @...Nachbar > Schöne Grüße an John. Ich richte sie ihm aus, wenn ich wieder durch Laramy komme...
Hat jemand vielleicht eine 40-polige IDE-Verlängerung 1:1 mit zwei WEIBCHEN (Buchsen) >= 15 cm <= 60 cm für mich? Für die Verbindung vom Pollin-Board zu einem "Brotbrett". Unversicherten Versand nach AT berücksichtigen. Event. per eMail. Danke Harald
Harald Fuckar schrieb: > Hat jemand vielleicht eine 40-polige IDE-Verlängerung Guck' ma auf dem Wertstoffhof in einen älteren PC. Die wurden dort zu Massen verbaut. PATA-Festplattenverbinder zum Mainboard.
Vergess nicht, wenn du schon beim Recycler bist auch ein Steckernetzteil mitzunehmen ;)
Mathias O. schrieb: > Vergess nicht, wenn du schon beim Recycler bist auch ein Steckernetzteil > mitzunehmen ;) ...und von zu Hause auch gleich noch den "DIAMEX ALL AVR Programmer USB-ISP" Hier hat jemand GUTE Erfahrungen damit gemacht: Beitrag "Re: Diamex USB ISP Programmer"
So das Evaluationsboard ist jetzt endlich fertig. Die drei Komponenten * ATMEL-Evaluationsboard von Pollin * DIAMEX ALL AVR Programmer USB-ISP * ATMEL Studio können miteinander und funktionieren auch gut und ohne Probleme. Hab' auch schon meine ersten Schritte in Assembler gemacht. Wie man in ua. Beispiel sieht, war ich brav und hab' keine "WaitSchleifen" gebastelt, sondern alles (TastenEntprellen, ServoPulsing) wie von den Lehrmeistern verlangt, über Timer-Interrupts abgewickelt. Da ich von der kfm. Programmierung (PowerBuilder) komme, haben mir die fehlenden Dezimal-Rechenoperationen schon sehr gefehlt. Ist wirklich eine ganz neue Erfahrung für mich so nah am "Takt" zu arbeiten. Die Steuerung für einen Servomotor funktioniert ja schon ganz gut. ABER! Was mir jetzt Kopfzerbrechen macht, ist, wie lege ich die Steuerung von mehreren Servomotoren an, die ja gleichzeitig in verschiedene Richtungen drehen sollen? Hier im Forum gibt's ja ein Beispiel, das ist aber leider in C. Also muß ich mich damit auch auseinender setzen. Ach ja, beim Basteln des Evaluationsboardes ist mir leider ein Missgeschick passiert. Ich war schon fertig, hab' vom IDE-Stecker zu den Sockeln die Leitungen "durchgeklingelt" und bin erst da draufgekommen, dass der 28er-Nullkraft-Sockel fehlerhaft ist. Und dann hab' ich ihn ausgelötet. Und dabei war ich wahrscheinlich zu heftig. Und dann hab' ich einen anderen eingelötet. Und dann waren ein paar Verbindungen nicht mehr da. Und dann hab' ich die Platine weggeschmissen. Und dann hab' ich mir bei Pollin eine neue bestellt. Und dann hab' ich die Nullkraft-Sockel auf dem neuen Evaluationsboard auf Buchsenleisten gesetzt. Und dann hat das aber geklappt. Zwichendurch hab' ich versucht, mir in den A.... zu beissen. Ist aber eh nicht gegangen, weil das ist bei mir noch nie gegangen ;-) Dies ist mein zweites AVR-Assembler-Programm. Das Erste war Tasten+LED+Summer (wie am Evaluationsboard vorgesehen).
1 | ; |
2 | ; ****************************************************************************** |
3 | ; Programm: ServoLernen.asm |
4 | ; Datum...: 24.11.2014 |
5 | ; Autor...: Harald Fuckar |
6 | ; |
7 | ; ATmega88 |
8 | ; ----------------- |
9 | ; | 1 PC6 AVCC 28| |
10 | ; | 2 PD0 PC4 27| |
11 | ; | 3 PD1 PC3 26| |
12 | ; Taste1 | 4 PD2 PC2 25| |
13 | ; Taste2 | 5 PD3 PC1 24| |
14 | ; Taste3 | 6 PD4 PC0 23| |
15 | ; | 7 VCC GND 22| |
16 | ; | 8 GND AREF 21| |
17 | ; | 9 PB6 AVCC 20| |
18 | ; |10 PB7 PB5 19| |
19 | ; LED1 |11 PD5 PB4 18| |
20 | ; LED2 |12 PD6 PB3 17| |
21 | ; ServoPuls |13 PD7 PB2 16| |
22 | ; CLKO |14 PB0 PB1 15| |
23 | ; ----------------- |
24 | ; |
25 | ; INPUT'S: |
26 | ; Taste1 = Servoarm in "untere" Position fahren |
27 | ; Taste2 = Servoarm in Mittelstellung fahren |
28 | ; Taste3 = Servoarm in "obere" Position fahren |
29 | ; |
30 | ; OUTPUT'S: |
31 | ; LED1 = Warnung unteres Servo-Limit erreicht |
32 | ; LED2 = Warnung oberes Servo-Limit erreicht |
33 | ; ServoPuls = Servo-Steuerung |
34 | ; CLKO = ClockOutput (für Kontrolle und Tests) |
35 | ; |
36 | ; ****************************************************************************** |
37 | .include "m88def.inc" |
38 | |
39 | ; Konstanten |
40 | |
41 | .equ XTAL = 8000000 |
42 | .equ Tim2PScal = 64 |
43 | .equ OCR2ALow = XTAL / Tim2PScal / 1000 ; OCR2A-Wert für 1 Millisekunde |
44 | .equ OCR2AHigh = XTAL / Tim2PScal / 500 ; OCR2A-Wert für 2 Millisekunden |
45 | .equ OCR2AMid = (OCR2ALow + OCR2AHigh) / 2 ; OCR2A-Mittelwert |
46 | |
47 | |
48 | ; Symbolische Namen für Register vergeben |
49 | |
50 | .def iwr0 = r1 |
51 | .def iwr1 = r2 |
52 | .def key_old = r17 |
53 | .def key_state = r18 ; Tasten-Zustand alt |
54 | .def key_stalt = r4 ; Tasten-Zustand neu |
55 | .def key_press = r5 |
56 | .def temp1 = r16 |
57 | .def Tim2IZ = r19 ; Interrupt-Zähler Timer-2 |
58 | .def Tim2IZMax = r20 |
59 | |
60 | .equ key_pin = PIND |
61 | ; |
62 | ; ============================================================================== |
63 | ; |
64 | ; Hier fängt Code-Bereich des Flashspeichers an |
65 | .cseg |
66 | .org 0000 |
67 | rjmp Init |
68 | |
69 | ; Interrupt-Vektoren |
70 | .org INT0addr reti ; External Interrupt Request 0 |
71 | .org INT1addr reti ; External Interrupt Request 1 |
72 | .org PCI0addr reti ; Pin Change Interrupt Request 0 |
73 | .org PCI1addr reti ; Pin Change Interrupt Request 0 |
74 | .org PCI2addr reti ; Pin Change Interrupt Request 1 |
75 | .org WDTaddr reti ; Watchdog Time-out Interrupt |
76 | .org OC2Aaddr rjmp isr_Timer2CMA ; Timer/Counter2 Compare Match A |
77 | .org OC2Baddr reti ; Timer/Counter2 Compare Match B |
78 | .org OVF2addr reti ; Timer/Counter2 Overflow |
79 | .org ICP1addr reti ; Timer/Counter1 Capture Event |
80 | .org OC1Aaddr reti ; Timer/Counter1 Compare Match A |
81 | .org OC1Baddr reti ; Timer/Counter1 Compare Match B |
82 | .org OVF1addr reti ; Timer/Counter1 Overflow |
83 | .org OC0Aaddr reti ; TimerCounter0 Compare Match A |
84 | .org OC0Baddr reti ; TimerCounter0 Compare Match B |
85 | .org OVF0addr rjmp isr_Timer0OFlow ; Timer/Couner0 Overflow |
86 | .org SPIaddr reti ; SPI Serial Transfer Complete |
87 | .org URXCaddr reti ; USART Rx Complete |
88 | .org UDREaddr reti ; USART, Data Register Empty |
89 | .org UTXCaddr reti ; USART Tx Complete |
90 | .org ADCCaddr reti ; ADC Conversion Complete |
91 | .org ERDYaddr reti ; EEPROM Ready |
92 | .org ACIaddr reti ; Analog Comparator |
93 | .org TWIaddr reti ; Two-wire Serial Interface |
94 | .org SPMRaddr reti ; Store Program Memory Read |
95 | |
96 | .org INT_VECTORS_SIZE |
97 | ; |
98 | ; ------------------------------------------------------------------------ |
99 | ; InterruptServiceRoutine: Timer0-Overflow |
100 | isr_Timer0OFlow: |
101 | push r0 ; temporäre Register sichern |
102 | in r0, SREG |
103 | push r0 |
104 | push iwr0 |
105 | push iwr1 |
106 | |
107 | in temp1, key_pin ; Bits umkehren |
108 | com temp1 ; gedrückte Tasten werden zu 1 |
109 | cbr temp1, 0b11100011 ; PINs, die nix mit den TastenPINs zu tun |
110 | ; haben auf LOW (nicht gesetzt) setzen |
111 | |
112 | mov iwr0, key_old ;00110011 10101010 00110011 |
113 | mov key_old, temp1 ;11100011 |
114 | eor iwr0, key_old ; 11000011 |
115 | com key_old ;00001111 |
116 | mov iwr1, key_state ; 10101010 |
117 | or key_state, iwr0 ; 11101011 |
118 | and iwr0, key_old ; 00000011 |
119 | eor key_state, iwr0 ; 11101000 |
120 | and iwr1, iwr0 ; 00000010 |
121 | or key_press, iwr1 ; gedrückte Taste merken |
122 | ; |
123 | pop iwr1 ; Register wiederherstellen |
124 | pop iwr0 |
125 | pop r0 |
126 | out SREG, r0 |
127 | pop r0 |
128 | reti |
129 | ; |
130 | ; ------------------------------------------------------------------------ |
131 | ; InterruptServiceRoutine: Timer/Counter2 Compare Match A |
132 | isr_Timer2CMA: |
133 | push r0 ; temporäre Register sichern |
134 | in r0, SREG |
135 | push r0 |
136 | |
137 | inc Tim2IZ |
138 | cpi Tim2IZ, 1 |
139 | breq isr_Timer2CMA_Puls1 |
140 | cpi Tim2IZ, 2 |
141 | breq isr_Timer2CMA_Puls0 |
142 | cp Tim2IZ, Tim2IZMax |
143 | brne isr_Timer2CMA_Exit |
144 | ldi Tim2IZ, 0 |
145 | |
146 | isr_Timer2CMA_Exit: |
147 | pop r0 |
148 | out SREG, r0 |
149 | pop r0 |
150 | reti |
151 | isr_Timer2CMA_Puls1: |
152 | sbi PORTD, PD7 ; ServoPuls-Portpin auf HIGH setzen |
153 | rjmp isr_Timer2CMA_Exit |
154 | isr_Timer2CMA_Puls0: |
155 | cbi PORTD, PD7 ; ServoPuls-Portpin auf LOW setzen |
156 | rjmp isr_Timer2CMA_Exit |
157 | ; |
158 | ; ------------------------------------------------------------------------ |
159 | ; Hier beginnt das Hauptprogramm mit Init |
160 | Init: |
161 | |
162 | ; SRAM-Stack einrichten |
163 | ldi temp1, high(ramend) |
164 | out sph, temp1 |
165 | ldi temp1, low(ramend) |
166 | out spl, temp1 |
167 | |
168 | ; PortB Konfigurieren |
169 | ; Output: CLKO(PB0) |
170 | ldi temp1, 1<<DDB0 |
171 | out DDRB, temp1 |
172 | |
173 | ; PortD Konfigurieren |
174 | ; Output: LED1(PD5), LED2(PD6), ServoPuls(PD7) |
175 | ; Input: Taste1(PD2), Taste2(PD3), Taste3(PD4) (interne PullUps) |
176 | |
177 | ldi temp1, 1<<DDD7 | 1<<DDD6 | 1<<DDD5 |
178 | out DDRD, temp1 |
179 | ldi temp1, (1<<PD4)|(1<<PD3)|(1<<PD2) |
180 | out PORTD, temp1 |
181 | |
182 | ; Timer-0 konfigurieren |
183 | ldi temp1, 1<<CS02 | 0<<CS01 | 1<<CS00 ; 101 = Timer0 mit Vorteiler 1024 |
184 | out TCCR0B, temp1 |
185 | ldi temp1, 1<<TOIE0 ; Timer Overflow Interrupt einrichten |
186 | sts TIMSK0, temp1 |
187 | |
188 | clr key_old ; die Register für die Tastenauswertung im |
189 | clr key_state ; Timer-0-Interrupt initialisieren |
190 | clr key_stalt |
191 | clr key_press |
192 | |
193 | ; Timer-2 konfigurieren |
194 | ldi temp1, 1<<WGM21 ; Timer2 im CTC-Mode (Clear Timer on Compare) |
195 | sts TCCR2A, temp1 |
196 | ldi temp1, 1<<CS22 | 0<<CS21 | 0<<CS20 ; 100 = Timer2 mit Vorteiler 64 |
197 | sts TCCR2B, temp1 |
198 | ldi temp1, OCR2AMid |
199 | sts OCR2A, temp1 ; Wert für Mittelstellung einstellen |
200 | ldi temp1, 1<<OCIE2A |
201 | sts TIMSK2, temp1 ; match A interrupt enable |
202 | |
203 | ldi Tim2IZ, 0 |
204 | ldi Tim2IZMax, 15 |
205 | |
206 | sei ; Interrupt freigeben |
207 | |
208 | Main: |
209 | |
210 | clr key_press ; Tastendruck zurücksetzen |
211 | |
212 | cp key_state, key_stalt ; Tasten gleich geblieben? |
213 | breq main ; Ja, also nix zu tun |
214 | |
215 | ; Hier steht fest, dass sich was geändert hat - aber welche Taste und wie? |
216 | mov temp1, key_stalt |
217 | mov key_stalt, key_state |
218 | eor temp1, key_state ; welche Taste hat sich geändert |
219 | |
220 | sbrc temp1, PD2 ; SkipIfBitInRegisterIsClear - wenn Taste1 nicht betroffen |
221 | rcall Taste1 |
222 | |
223 | sbrc temp1, PD3 ; SkipIfBitInRegisterIsClear - wenn Taste2 nicht betroffen |
224 | rcall Taste2 |
225 | |
226 | sbrc temp1, PD4 ; SkipIfBitInRegisterIsClear - wenn Taste3 nicht betroffen |
227 | rcall Taste3 |
228 | |
229 | rjmp main |
230 | |
231 | Taste1: |
232 | sbrs key_state, 2 ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP |
233 | ret ; sofort retour wenn Taste losgelassen |
234 | cbi PORTD, PD5 ; LED1 aus |
235 | cbi PORTD, PD6 ; LED2 aus |
236 | lds temp1, OCR2A |
237 | dec temp1 |
238 | cpi temp1, OCR2ALow |
239 | brcc Taste1_NoLim ; unteres Limit nicht unterschritten |
240 | sbi PORTD, PD5 ; LED1 an |
241 | ldi temp1, OCR2ALow |
242 | Taste1_NoLim: |
243 | cli |
244 | sts OCR2A, temp1 |
245 | rcall Tim2IZMax_Kalk |
246 | ldi temp1, 0 |
247 | sts TCNT2, temp1 |
248 | sei |
249 | ret |
250 | Taste2: |
251 | sbrs key_state, 3 ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP |
252 | ret ; sofort retour wenn Taste losgelassen |
253 | cbi PORTD, PD5 ; LED1 aus |
254 | cbi PORTD, PD6 ; LED2 aus |
255 | ldi temp1, OCR2AMid |
256 | cli |
257 | sts OCR2A, temp1 |
258 | rcall Tim2IZMax_Kalk |
259 | ldi temp1, 0 |
260 | sts TCNT2, temp1 |
261 | sei |
262 | ret |
263 | Taste3: |
264 | sbrs key_state, 4 ; SkipIfBitInRegisterIsSet - wenn Taste gedrückt SKIP |
265 | ret ; sofort retour wenn Taste losgelassen |
266 | cbi PORTD, PD5 ; LED1 aus |
267 | cbi PORTD, PD6 ; LED2 aus |
268 | lds temp1, OCR2A |
269 | inc temp1 |
270 | cpi temp1, OCR2AHigh |
271 | brcs Taste3_NoLim ; oberes Limit nicht überschritten |
272 | sbi PORTD, PD6 ; LED2 an |
273 | ldi temp1, OCR2AHigh |
274 | Taste3_NoLim: |
275 | cli |
276 | sts OCR2A, temp1 |
277 | rcall Tim2IZMax_Kalk |
278 | ldi temp1, 0 |
279 | sts TCNT2, temp1 |
280 | sei |
281 | ret |
282 | ; |
283 | ; ------------------------------------------------------------------------ |
284 | ; Kalkulation für Gesamt-Signalperiode |
285 | ; Aktueller Wert von OCR2A steht in temp1 |
286 | Tim2IZMax_Kalk: |
287 | ; |
288 | ; Auf den Stack sichern |
289 | push r0 |
290 | in r0, SREG |
291 | push r0 |
292 | |
293 | ldi Tim2IZ, OCR2AHigh |
294 | sub Tim2IZ, temp1 |
295 | ldi Tim2IZMax, 0 |
296 | Tim2IZMax_KalkLoop: |
297 | cpi Tim2IZ, 12 |
298 | brbs SREG_C, Tim2IZMax_Fini |
299 | inc Tim2IZMax |
300 | subi Tim2IZ, 12 |
301 | rjmp Tim2IZMax_KalkLoop |
302 | Tim2IZMax_Fini: |
303 | ldi temp1, 10 |
304 | add Tim2IZMax, temp1 |
305 | ldi Tim2IZ, 0 |
306 | |
307 | ; vom Stack zurücksichern |
308 | pop r0 |
309 | out SREG, r0 |
310 | pop r0 |
311 | ret |
hi die Idee mit der Pinbelegung am Anfang des Codes finde ich genial ich bin da immer am hin und her schalten zw. AVR-Studio und dem Datenblatt des Chips. bei deinem Interruptvektortabelle ist mir was aufgefallen. Ich mache das bei so Beispiel (ATtiny26) .CSEG .ORG 0x00 rjmp RESET ; Reset handler reti; rjmp EXT_INT0 ; IRQ0 handler reti; rjmp PIN_CHANGE ; Pin change handler rjmp TIM1_CMP1A ; Timer1 compare match 1A reti; rjmp TIM1_CMP1B ; Timer1 compare match 1B reti; rjmp TIM1_OVF ; Timer1 overflow handler reti; rjmp TIM0_OVF ; Timer0 overflow handler reti; rjmp USI_STRT ; USI Start handler reti; rjmp USI_OVF ; USI Overflow handler reti; rjmp EE_RDY ; EEPROM Ready handler reti; rjmp ANA_COMP ; Analog Comparator handler reti; rjmp ADC ; ADC Conversion Handler bei den verwendeten Interrupts lösche ich dann einfach das reti raus welches einfach den Rücksprung veranlasst. Man kann darauf auch Breakpoint legen um im Studio gleich zu sehen wo das ganze hinverzweigen will.
http://www.zierath-software.de/board/index.php?page=Thread&threadID=415&s=e07e12ee7609525f5bee81ec325a0b32d94c4fd2 Ist so was normal!? Hatte also doch eine Ahnung diesen Forum nicht zu trauen!
Das ist absolut normal würde ich sagen. Es wird dort ja nur erwähnt welche Folgen ein Systemwechsel haben kann. So kann sich doch jeder selber ein Bild machen ob das Sinn ergibt.
Thomas O. schrieb: > bei den verwendeten Interrupts lösche ich dann einfach das reti raus > welches einfach den Rücksprung veranlasst. Man kann darauf auch > Breakpoint legen um im Studio gleich zu sehen wo das ganze hinverzweigen > will. Ja, ich hab' mir das aus der "m88def.inc"-Datei reinkopiert. Die ist, gerade für mich als Anfänger, sehr nützlich, weil man da auch schön einen Überblick über die Label hat.
Wollte damit sagen das man das .ORG nicht jedes mal braucht sondern die Sprungbefehle ab 0x00 fortlaufend sind.
Danke, das war mir schon klar. Aber wenn zum Beispiel aus irgend einem Grund eine Zeile dort verloren geht, funktioniert das Ding immer noch, wenn der ".org"-Eintrag da ist. Und es kostet ja zusätzlich keinen Speicherplatz im Programm. Schönen Tag noch! Harald
Harald Fuckar schrieb: > Hab' auch schon meine ersten Schritte in Assembler gemacht. > Wie man in ua. Beispiel sieht, war ich brav und hab' keine > "WaitSchleifen" gebastelt, sondern alles (TastenEntprellen, > ServoPulsing) wie von den Lehrmeistern verlangt, über Timer-Interrupts > abgewickelt. Das ist aber noch nicht das Optimum. Zumindest für den Betrieb der Servos solltest du keine Interrupts verwenden, das kann die Timerhardware ganz ohne Mitarbeit der MCU leisten. Dafür gibt es die PWM-Modi und die entsprechenden Hardwareausgänge. Jeder der drei Timer des Mega88 besitzt zwei PWM-Kanäle, insgesamt könntest du also sechs Servos damit ansteuern und die MCU muß dazu (abgesehen von der Initialisierung der Timer) nur dann etwas tun, wenn die Servoposition geändert werden soll. Das Halten der zuletzt gesetzten Positionen der Servos hingegen erledigt die Hardware dann ganz alleine. Noch eine kurze Bemerkung zu deinem Programm: Die Berechnung der OCR-Werte gleich zu Anfang ist leicht fehlerhaft, da fehlt jeweils ein "-1". Siehe Datenblatt. Trotzdem: Für ein zweites Asm-Programm ist das schon eine sehr saubere Leistung. Weiter so.
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.