Gefunden für befehle atmel mikrocontroller - Zum Elektronik Forum |
| 1 - Modellbahn Weichenantrieb mit PC schalten -- Modellbahn Weichenantrieb mit PC schalten | |||
| |||
| 2 - Mikrowellecontroller bequem in C programmieren -- Mikrowellecontroller bequem in C programmieren | |||
| Hardware-Multiplizierer und Teiler wirst du in den kleinen
µC (Mikrokontrollern) ehr nicht finden, dies ist das Gebiet der DSPs (digital signal processor). Multiplizierer sind in Hardware sehr aufwendig zu integrieren und verbrauchen verhältnismäßig viel Chipfläche. Im normalen Verwendungsbereich dieser µC werden selten schnelle Multiplikationen / Divisionen benötigt, so dass man sie in mehreren Schritten mit den normalen ALU-Befehlen (Arithmetic Logical Unit) berechnen lässt. Der Multiplizierer / Teiler wird in Software geschrieben. Wen man sich auf Multiplikationen und Divisionen zur Basis 2 Beschränkt, geht es auch direkt mit den Schiebebefehlen der ALU. ( In FPGAs (Field Programmable Gate Array) werden vom Hersteller schon mehrere Multiplizierer integriert damit vom Benutzer dafür nicht viele Logikelemente verbraucht werden müssen, des weiterem kann man einen Multiplizierer, der schon fertig im Silizium verschaltet ist, schneller takten, als einen aus vielen Logikelementen zusammengesetzte. (Das war mal ein kleiner Einblick in die programmierbare Logik) ) Und immer der Streit Assembl... | |||
3 - Einstellbarer Timer mit 7 Segment -- Einstellbarer Timer mit 7 Segment | |||
Du musst wissen, ich habe noch nicht so wirklich viel Ahnung von Microcontrollern. Ich bekomme es gerade mal so hin, dass eine LED leuchtet
Brauch ich für einen Atmel nicht einen anderen Programmieradapter? Die befehle heißen dann doch auch anders oder? ... | |||
| 4 - Pic oder Atmega? Was ist besser??? -- Pic oder Atmega? Was ist besser??? | |||
Zitat : Beim Atmel glaub ich, dass die vier Abläufe um einen Befehl auszuführen parallel ablaufen. Sprich: Wenn ein Befehl im vierten Abschnitt steckt und gerade Ergebnisse zurückgeschrieben werden ist der nächste Befehl bereits beim Ausführen, der übernächste lädt bereits die Daten und der überübernächste Befehl wird bereits dekodiert. Ja, so ist es. Ein Takt besteht aus 4 Teilen, Low, steigende Flanke, High und fallende Flanke. In jeden Teil eines Taktes wird eine Operation ausgeführt, daher komm die Rechenleistung. Abweichend sind (fast) alle Befehle die auf Flags reagieren müssen, die benötigen 2 Takte, da die Auswertung auch Zeit braucht. [ Diese Nachricht wurde geändert von: Jornbyte am 14 Jan 2009 23:18 ]... | |||
| 5 - programm für attiny -- programm für attiny | |||
Zitat : baubau hat am 18 Nov 2008 19:26 geschrieben : woher bekomme ich eine liste für die ganzen befehle die ich da reinbauen kann??? [ Diese Nachricht wurde geändert von: baubau am 18 Nov 2008 19:27 ] Für C im allgemeinen gibt's den Klassiker "Kernighan Richie" (k.A. wie man den richtig schreibt) und jede Menge Bücher und Veröffentlichungen im WWW. Die speziellen Befehle für Atmel µC sind bei den Codebeispielen im Datenblatt mit aufgeführt. Dafür ist aber schon ein wenig Verständniss für die Sprache "C" nötig. Könnte man ungefähr so vergleichen: Mann sagt "Da Wauwau" (=Asm; jedes Baby versteht, dass dort ein Hund ist) oder eben "da ist ein Hund" (=Hochsprache, z.B. C - lässt sich auch leichter übertragen in andere Sprachen und ist allgemein verständlich.... ausser vielleicht für Babys, die imm... | |||
| 6 - µController -- µController | |||
Zitat : Auch wenn mich DonComi und Jornbyte gleich wieder schlagen werden. Hatte ich das schon beendet? @d0um Aber nun im ernst. So ein Controller besteht aus einem Taschenrechner, einem Wecker, ne Reihe an D-FlipFlop und Schieberegister, Ram und EEProm. Den Programmflash lasse ich mal weg. Wozu der da ist.. na der "merkt" sich dein Programm. Du könntest nun denken ich würde dich veräppeln wollen, dem ist nicht so. Fangen wir noch mal mit dem Taschenrechner an. Das ist der eigentliche Prozessor. Darin sind Register. Wir rechnen mal 1+2+3. Da wird jeder Wert in ein Register geschrieben, das ist so beim Taschenrechner. Der Atmel hat 32 Stück davon. Die werden für die Abarbeitung des Programms gebraucht. Was ist der Wecker? Ein einfacher NE555, nein ist es nicht aber von der Funktion her fast vergleichbar wenn es um Zeit geht. Das Ding wird da Timer genannt. Mit dem kannst du Vor oder Zurück zählen oder in einer bestimmten Zeit was ... | |||
| 7 - Adressierungsarten ATmega32 -- Adressierungsarten ATmega32 | |||
| Am besten saugst du dir beim Hersteller Atmel die Entwicklungssoftware AVRStudio. Damit kannst du vollständige Programme in Assembler schreiben, die Syntax prüfen lassen und mit dem Simulator ausführen und das Resultat anschauen.
Natürlich können das auch kleine Testprogramme sein, die nur dazu dienen die Wirkung einzelner Befehle anzuschauen. In der Hilfefunktion findest du unter Instruction Set auch Erläuterungen wie die verschiedenen Befehle funktionieren, welche Flags verändert werden usw. Direkte Adessierung heisst, dass die Adresse des Operanden im Befehl fest programmiert enthalten ist, während sie bei indirekter Adressierung in (mindestens) einem Register enthalten ist. Predecrement und Postincrement gehören ebenso wie Preincrement und Postdecrement zusammen. Im ersten Fall (Predecrement) wird das Adressregister zuerst erniedrigt und dann erst auf den Speicher zugegriffen, während beim Postincrement der Speicherzugriff zuerst erfolgt und dann erst das Adressregister verändert (erhöht) wird. Man verwendet diese Operationen vorzugsweise für Stack(Stapel)-Operationen wie call/return oder push/pop. Welches der beiden Paare man benutzt ist weitgehend Geschmackssache. Üblich ist es predecrement für call und push zu verwenden und den Stap... | |||
| 8 - RGB-LED Matrix -- RGB-LED Matrix | |||
Zitat : es einen komplett kostenlosen Assembler und C-Compiler gibt. Gibts doch für PICs auch (Assembler sowieso, C zumindest als ne leicht eingeschränkte Student-version). @ stalky13: Hast du auch einen Parallelport am PC? oder hast du einen in Reichweite? Du musst den PIC (bzw Atmel, vlt kann dich DonComi umstimmen ) ja auch Programmieren, und dafür brauchst du, wenn du kein Demoboard kaufen willst, einen Programmieradapter, der am günstigsten für den Paraport aufzubauen ist. Hast du dir die Seite in der USB beschrieben wird angesehn? Ich finde es recht kompliziert, außerdem reicht die RS232 doch völlig aus, oder willst du die Musik an den PIC übertragen, damit der den Beat rausrechnet und die LEDs entsprechend ansteuert?
Wegen der Programmiersprache: Aufgrund deiner Erfahrung in Basic würde ich vlt doch C empfehlen, da es auch eine Hochsprache ist und vieles Einfacher macht. Helfen kann ich dir dann a... | |||
| 9 - Entwickeln von Mikrokontroller-Schaltungen -- Entwickeln von Mikrokontroller-Schaltungen | |||
| Hallo,
ich lese immer wieder, dass die Atmels mehrere Interupvektoren haben und der PIC nur einen. Das ist sicher richtig, aber welchen Vorteil bringen mir denn diese mehereren Vektoren beim Atmel? OK, ich spare mir die Abfrage, welches Interupbit denn nun gesetzt wurde und kann gleich in meine Routine springen. Aber welche Vorteile bringt mir das noch? Der PIC springt immer auf Adresse 4. Ich benötige für die Abfrage des Interupts genau 2 ASM-Befehle pro Interuptquelle (btfsc und goto) und bin dann auch in meiner Routine. Der PIC unterscheidet über 30 Interuptquellen (hängt vom Typ ab) und auf alle Quellen kann ich unterschiedlich reagieren. Man muß halt bloß immer erst die Quellen abfragen, welche einen interessieren. Bitte nicht falsch verstehen. Ich glaube halt nur, dass der Vorteil mit den Interupvektoren halt irgendwie überbewertet wird, es sei denn, es gibt noch Vorteile, die ich nicht kenne. Dann wäre es natürlich nett wenn ihr diese mal benennen könntet (also in Bezug auf die Interuptverarbeitung). Hat der ATmel eigentlich ein Prioritätenmodell für die Abarbeitung der Interupts und kann er einen laufenden Interupt durch einen weiteren Interupt unterbrechen (also verschachteln)? Würde mich mal interessieren. Gruß Sven ... | |||
| 10 - Mein Lauflicht :) -- Mein Lauflicht :) | |||
Ich verwende für dieses Beispiel nur Befehle die für alle Atmel (mit Ram) anwendbar sind Um einen anderen Prozz ans Laufen zu bringen muss nur der Includeeintrag und die Interrupttabelle geändert werden. Zuerst sagen wir dem Assembler mal was da für ein µController Verwendung findet. Das wird mit der Assembler Directive .include gemacht. In jedem Prozz sind paar Dinge vorhanden, wie zum Beispiel D/A-Wandler, Timer, Uart, bla bla...... .Diese Komponenten können sich über einen Interrupt melden. Dies führt dazu, das der Prozz zu einer festgelegten Adresse in der Interrupttabelle springt (Interrupt Vector Address). Vor dieser Tabelle ist noch Platz für einen einzigen Befehl. Damit soll es nun Losgehen. rjmp losgehts springt an den Anfang des Programm und da sagen wir dem Prozz was er alles verwenden soll. Der Stackpointer wird an das Ende vom Ram eingerichtet. Der braucht für dieses Beispiel nur wenig Platz Weiter geht’s mit PortB, der wird benötigt um paar LED blinken zu lassen. Dazu wird das Register 16 verwendet. Da steht eine 0x55 drin, Binär ist das 01010101. Dieses Muster wird an PortB ausgegeben. Danach kommt der Befehl ror (Rotiere nach Rechts) . Nach dem warten (0,5 s) geht es zurück zur Marke main. Was passiert bei warten, das ist auch e... | |||
| 11 - welcher Atmel für Torzähler? -- welcher Atmel für Torzähler? | |||
| Für Port Ein- und Ausgabe ist folgendes wichtig, um schon etwas rumprobieren zu können:
I/O Register: (x steht für den Portbuchstabe) DDRx : bestimmt ob die Pins jeweils Ein- oder Ausgabe sein soll (mit pull-up/down, oder ohne bis mehrere zig mA Ein-/Ausgangsstrom ). PORTx : bestimmt ob die Pins jeweils hoch oder tief ausgeben sollen. PINx (nur Lesezugriff) : Zeigt was der AVR an den Pins sieht. Befehle: out : I/O Register schreiben in : I/O Register lesen Beispiel: ldi r16, 0b00010110 out DDRB, r16 ; PB1, PB2 und PB4 auf Ausgang stellen ldi r16, 0b00000011 out PORTB, r16 ; PB0 mit internem pull-up hoch ziehen, PB1 auf high z.B. um ein LED Segment zu versorgen in r16, PINB ; momentanten Zustand der Pins von Port B ins Arbeitsregister r16 kopieren Von Atmel solltest du folgendes haben: AVR Studio 3 oder 4 ATMega8 Datenblatt AVR Befehlsatz ("instruction set") Noch was ganz anderes: Zeichnungen wie Schaltpläne etc. die keine fließenden Farbübergänge oder Rauschen haben, komprimiert man besser mit dem verlustfreien GIF Format als dem verlustbehaftetem für Bilder gedachten JPEG. Oder noch effizienter als GIF: PNG Beispiel: Dein Schaltplan al... | |||
| 12 - IR-Empfänger-Tester -- IR-Empfänger-Tester | |||
| Hallo
Wenn du mit einer FB verschiedene Fernseher bedienen willst würde ich dir zu einer Universal Fernbedienung raten. Da sind schon alle Sachen eingespeichert. Man spart sich ne Menge Arbeit. Es wird nicht die Frequenz geändert sondern es ändern sich die Daten die übertragen werden. Sehr beliebt bei Fernsehern ist das RC-5 Signal. Wenn du was mit µC machen willst schau dir mal Bascom für die Atmel AVR Chips an, dort sind Befehle eingebaut welche RC-5 senden und auch empfangen können. Marcus... | |||
| 13 - Ist diese Steuerung realisierbar ? -- Ist diese Steuerung realisierbar ? | |||
| Hallo
Machbar ist das auf jeden Fall. Jetzt stellt sich halt die Frage in welcher Sprache du die Dinger programmieren willst.Assembler, C, .... Ich habe selbst noch nichts mit Pics gemacht. Ich nehme die AVR von Atmel und dann Bascom (Basic Compiler). Damit kann man recht schnell sein Programm am laufen bekommen. Da sind auch Befehle für LCD und Tempsensor (1-Wire DS18S20). Dann ist es auch nicht mehr weit bis zum fertigen Programm. Marcus ... | |||
| 14 - Festplatte für AVR -- Festplatte für AVR | |||
| Das Original, ja. Aber diverse neu aufgelegte 8051-Derivate, wie z.B. von Maxim oder Cygnal, brauchen nur noch 1-4 Takte pro Befehl.
Auch Texas Instruments hat nen schönen Vertreter, den MSC1210. Zu deinen Fragen: 1. 8051 hat ne CISC-Architektur. Aber je nach Derivat brauchen die auch nur einen Takt pro Befehl, wobei sich das so pauschal eh nicht sagenläßt, da auch die AVR-Serie von Atmel Befehle haben, die bis zu 4 Takte zu Ausführung benötigen. 2. Befehle sind anders, da nicht die gleiche Architektur. 3. Viele der neuen 8051-Derivate sind ISP fähig. Da brauchts dann auch nur nen Parallelport und ein paar Widerstände. Der 8051 ist neben dem AVR wohl am ehesten für Anfänger zu empfehlen. Im Netz finden sich viele Ressourcen zum 8051. Da gibt es nichts, was nicht schon mit nem 8051 gelöst worden wäre. ... | |||
| 15 - Professionelle DMX Anlage im Eigenbau - Kommunikationsprobleme -- Professionelle DMX Anlage im Eigenbau - Kommunikationsprobleme | |||
| Also um was es geht:
DMX ist ein Protokoll, um Lichtanlagen zu steuern. Meine Anlage soll künftig aus 2 Scannern bestehen (FArbe, Muster, Strobe und Ablenkung). Gesteuert werden soll alles über einen 486er, auf dem DOS lauft und ein C++ Programm abläuft. Das Ding hat ein 9'' LCD Display und ist in einem 2HE 19'' Rackgehäuse eingebaut. Es sind 1 COM und 1 LPT schnittstellen frei. Das programm, das auf diesem System ablauft (also die befehle an die beiden scanner) soll möglichst echtzeitmäßig in einen Atmel rüber. Dieser Prozessor macht dann draus das DMX Signal, das von einem weiteren Prozessor in den Scannern in Motorbewegungen umwandelt. Aber nun die Frage... Wie bekommt man am besten mehrere 8 BIT Zahlen vom PC in einen Atmel? Habe mir gedacht mit einem Interrupt im Atmel oder so irgendwie. Vielleicht hat wer eine Idee. ImAtmel dann sollen die Zahlen in R17 - R22 stehen, nacheinander, wie sie gekommen sind.... | |||
| 16 - LM7805 - interner Kurzschluss? -- LM7805 - interner Kurzschluss? | |||
| Hi
Ich hab ein kleines Problemchen mit meiner Schaltung. Nachdem sie nun schon seit Monaten funktioniert, sind mir jetzt meine beiden ICs durchgeschmort - leider auch ein Atmel µC, der keine Befehle mehr annimmt. Der Grund dafür scheint zu sein, dass sich meine Spannungsversorgung mit dem LM7805 verabschiedet hat und statt 5V jetzt 10V ausspuckt - auf Dauer natürlich der sichere Tod für meinen Controller. Ich habe an dem Regler extra ein Kühlblech dran, weil meine Versorgungsspannung unstabilisierte 12V sind, Abblockkondensatoren und Verpolungsschutz mit einer Diode sind auch da, und er hat auch immer gut funktioniert. An die 1A maximalen Ausgangsstrom komm ich auch nicht, da nur ein 90S4433 mit 5 LEDs, ein MAX232 und zwei Lichtschranken versorgt werden müssen. Was ist der Grund für diesen Ausfall? Und wie kann ich meine Schaltungen vor sowas schützen, denn ich hab nicht soviel Geld und Lust, mir wegen sowas neue Prozessoren zu kaufen
Tschau Gurney [ Diese Nachricht wurde geändert von: Gurney am 12 Mär 2004 15:50 ]... | |||
| 17 - Schleife -- Schleife | |||
Zitat : In meinem Buch steht da auch nichts von Datenrichtungsregistern ... Hast Recht, Dein µP hat tatsächlich kein DDR. Die meisten anderen µP haben solche Datenrichtungsregister, aber das zugrundeliegende Design des Intel 8051 ist ja auch schon 25 Jahre alt. Dadurch kann Deiner aber auch nur sehr geringe Ströme (50µA) ausgeben, die nicht einmal ausreichen einen npn-Transistor vernünftig anzusteuern. Du wirst also Pull-Up Widerstände von ca. 10kOhm verwenden müssen, oder pnp-Transistoren. Was hast Du denn da für ein Buch ? Du solltest Dir mindestens von Atmel die für die 8051 Familie relevanten Applikationsschriften sowie das Datenblatt des 89C52 geholt haben. Nur was im Datenblatt steht ist verbindlich. Besonders bei deutschsprachiger Sekundärliteratur habe schon viele Grausamkeiten gesehen. | |||
| 18 - Gute Idee?!? µC proggen mal ganz einfach! -- Gute Idee?!? µC proggen mal ganz einfach! | |||
| Ich gehe mal davon aus, dass dein Proggi für den Atmel sein soll. Dazu sollte der ASM-Code auch für den Atmel erzeugt werden. Da sind die Instruction mnemonics im Upload.
Beachte aber: nicht jeder µController versteht alle Befehle! Uploaded file: Instruction mnemonics.doc ... |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 8 Beiträge im Durchschnitt pro Tag heute wurden bisher 9 Beiträge verfasst 4 Besucher in den letzten 60 Sekunden alle 15.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |