Gefunden für assembler simulator pic16f84a - Zum Elektronik Forum |
| 1 - Mikrowellekontroller Festplattenmotor -- Mikrowellekontroller Festplattenmotor | |||
| |||
| 2 - Welche Programmiersprache für spezielles AVR-Projekt empfehlenswert? -- Welche Programmiersprache für spezielles AVR-Projekt empfehlenswert? | |||
Zitat : C ist theoretisch zumindest plattformunabhängig und du kannst auch „Trockenübungen” am PC ohne µC machen. Im MPLAB-Simulator kann ich auch Assembler-Trockenübungen für den PIC ganz ohne PIC am PC machen
Ansonsten ist es bestimmt auch nicht verkehrt, sich als Einsteiger ein paar Assembler-Tutorials querzulesen. Nicht unbedingt, um damit auch zu programmieren, sondern um besser zu verstehen, wie so ein µC überhaupt arbeitet (Register, Datenwörter etc.). Gruß, Bartho ... | |||
3 - Temperatursensor, weitere Schaltungen über RS232 -- Temperatursensor, weitere Schaltungen über RS232 | |||
| Moin,
Ja, du kannst schon was machen: * Ponyprog2000 installieren (ist das Brennprogramm), * ATMEL AVR Studio installieren (IDE für Assembler mit Simulator), * WinAVR passend dazu (wird im Studio integriert und erlaubt das Programmieren in C) Einlesen über die Grundlagen auf mikrocontroller.net und ggfs. hier oder dort nachfragen, wenn etwas unklar ist. Dort gibt es ein C-Tutorial speziell für AVRs. In C kannst du dich auch einlesen. Es ist also genug zu tun, bis Pollin geliefert hat
... | |||
| 4 - C oder Assembler was ist besser? -- C oder Assembler was ist besser? | |||
| Ich habe für Assembler gestimmt, da es einfach hardwarenäher und für mich einfacher zu lernen war. Ich kenne zwar mittlerweile rudimentäre Elemente von C (von Java, machen wir in Informatik), aber wirklich wohl fühl ich mich nicht damit. Das Zeug was wir so programmieren ist zwar ziemlich easy (kennt jemand den Hamster-Simulator?), aber "richtige" Programme damit zu schreiben wäre mir zu komplex. ... | |||
| 5 - welchen Microcontroller und wie damit umgehen? -- welchen Microcontroller und wie damit umgehen? | |||
| Also sprut.de ist für die PICs eigentlich DIE Einstiegsseite. Eine bessere Seite habe ich noch nicht gefunden. Dort ist alles beschrieben, was du für den Einstieg mit PICs wissen musst. Meiner Meinung nach auch sehr verständlich. Wenn du dort schon Schwierigkeiten hast, wird es wohl sehr schwer für dich werden... Allerdings programmiert der sprut die PICs in erster Linie in Assembler. Für manch einen mag das schwierig erscheinen. Ich persönlich finde C schwieriger. Aber da scheiden sich auch die Geister.
Um die PICs programmieren zu können, benötigst du erst mal einen Brenner. Der Brenner5 bei sprut ist für den Anfang gut geeignet. Den Brenner8 find ich zwar besser, da USB, da musst du aber jemanden finden, der dir den Bootloader in den 18F2550 des Brenners brennt. Das ist bei dem Brenner5 nicht notwendig. Du kannst dir aber auch erst mal nur das MPLAB von microchip.com runterladen und ein wenig mit dem Simulator spielen. Dafür benötigst du außer deinem PC keinerlei Zusatzhardware und du kannst schon mal mit ein paar einfachen Programmen anfangen. Gruß Sven ... | |||
| 6 - MPLAB IDE, Absturz bei Simulation -- MPLAB IDE, Absturz bei Simulation | |||
| Kann mir bitte jemand sagen, wie stabil die Simulation mit MPLAB IDE wirklich ist. Ich benutze die neueste Version 8.02. Es handelt sich um ein Programm für einen PIC16F876A mit 548 LOC, geschrieben in Assembler. Ich lese nur Daten über Ports ein, verarbeite sie, generiere Steuersignale und kommuniziere mit einem LCD Display. Timer etc. des PIC bleiben also unbenutzt.
Nun das Problem: (a) Setze ich einen Breakpoint (Anfang der Main_Loop) und starte dort die Simulation, so werden alle Berechnungen korrekt durchgeführt, einschließlich der Daten von/zu den Ports. Sooft ich den Startpfeil auch drücke, - nach jedem manuell ausgelösten Durchlauf stimmt das Ergebnis, auch hundert mal nacheinander. (b) Nehme ich den Breakpoint weg und starte, so hängt sich MPLAB IDE nach einigen Sekunden Laufzeit fatal auf (‚das Programm reagiert nicht’) und muss über das Betriebssystem (XP Home, SP2) beendet werden. Damit habe ich leider keinerlei Information, an welcher Stelle der Hänger passiert. Erwähnt sei, dass eine frühere (allerdings unbrauchbare) Version beliebig lange vor sich dahinsimuliert hat. Ich wende mich an Personen, die mit der MPLAB Simulation Erfahrung haben und mir sagen können, ob man in so einem Fall davon ausgehen kann, dass die Ursache nicht i... | |||
| 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 - MPLAB IDE 7.50: Linker will mich linken ;-) -- MPLAB IDE 7.50: Linker will mich linken ;-) | |||
Zitat : Die List-Direktive nimmt er mir jetzt ab (durch probieren rausgefunden),Das hättest du nicht ausprobieren brauchen, wenn du die Meldung mit etwas mehr Sorgfalt gelesen hättest: Warning[205] C:(Pfad)HALLO WELT.ASM 2 : Found directive in column 1. (LIST). Bedeutet, daß am Zeilenanfang, dort wo korrekterweise Labels stehen, das reservierte Wort LIST gefunden wurde. Deshalb weiß der Assembler nicht, ob er das als Label oder als Anweisung interpretieren soll und gibt deshalb die Warnung einer möglichen Fehlinterpretation aus. Zitat : interessanterweise ändert sich '.org_0' nicht wenn ..... statt org 0x00 zb 0x04 eingebe. Wenn ich org ganz weglasse.....Komisch, jetzt... | |||
| 9 - delay mit C bei AVR-Programmierung -- delay mit C bei AVR-Programmierung | |||
| Doch, klar geht das. Wenn man weis, wie lange die CPU braucht, um einen Befehl zu verarbeiten.
Das Problem ist, dass ein Befehl nicht exakt einen Taktzyklus braucht (in der Regel nicht), wenn z.b. eine Variable hochgezählt wird, muss immer ein kleines Makro diesen Ablauf steuern (RAM in Register laden, Register vorher auf Stack sichern, Operation durchführen, RAM zurückschreiben, Register wieder herstellen,...) Das dauert viel länger als ein inc r16. Deshalb sollten kleinere Schleifen reichen, wie man dass im Endeffekt exakt berechnen kann, kann ich dir nicht genau sagen, da ich sowas so noch nicht gemacht habe; ich nutze dafür meist Assembler. Aber du kannst es ja mal so machen: (unsigned short i=0;) for(i=0; i<=100; i++) {} Je nach Taktung erhält man da schon eine "sehbare" Verzögerung. Sonst nimmst du halt noch einen größeren Wert für i<=100. Mit dem Simulator kannst du die Zeit ablesen, die der codeschnipsel braucht: Vorher die "Watch resetten" und dann mit F11 die For-Schleife anspringen.
Das gelbe vom Ei ist das aber definitiv nicht, da muss man dann wissen, wie der Compiler das macht, also wie langer er... | |||
| 10 - Wie schwierig ist es? -- Wie schwierig ist es? | |||
| Hi,
ich bin seit über 30 Jahren in der Elektronik, vieles war schwer, manches war leicht. Muss sagen, µP-Technik war echt noch das einfachste: Alles nur Logik, denken, kombinieren, ein bissel Mathe... Wenn Du mit Digitaltechnik halbwegs vertraut bist, ist der Einstieg in µP nicht schwer. Musst Dich mit den Innereien eines µP vertraut machen, die Register verstehen lernen und den Befehlsvorrat durcharbeiten, dann wird vieles schon klar. Fang beim Programmieren mit einfachen Sachen an und schau Dir in einem Simulator die Ergebnisse an. Übrigens: Fachenglisch ist ein absolutes Muss!!! Ein recht guter Einstieg sind die PICs von Microchip: - Vorteil: Minimaler Befehlsvorrat und übersichtliche Struktur - Besorg Dir ein Fachbuch über die Grundlagen von µPs, wichtig dabei: Die Register müssen genauestens erklärt sein, die musst Du zu 100% verstehen - Schau Dir die diversen µP Grundkurse an, sind zwar alle nichts besonders, aber für den Anfang tun sie es - Lad Dir Datenblätter, zb 16F684 o.ä. runter, arbeite sie durch, lass am Anfang Timer, Ports, Schnittstellen usw beiseite, konzentrier Dich auf das Innenleben - Lad Dir den Assembler mit Simulator runter, brauchst ca eine Woche um Dich da einzuarbeiten - versuch ei... | |||
| 11 - BASCOM für POLLIN BOARD+ATmega8-16PU einstellen??? -- BASCOM für POLLIN BOARD+ATmega8-16PU einstellen??? | |||
| folgendes steht aber im datenblatt:
"Entwicklungsumgebungen Um Anwendungen und Programme für die Microcontroller der Atmel-Serie zu erstellen stehen Ihnen eine Reihe unterschiedlicher Möglichkeiten zur Verfügung: • Programmierung in Basic Für Anwender welche bereits mit einer Basic-Syntax vertraut sind und auch ihre Anwendungen für Microcontroller in Basic entwickeln möchten steht eine Demo-Version der bekannten Entwicklungsumgebung BASCOM-AVR der Firma MCS-Electronic unter http://www.mcselec.com zum Download bereit. Die Demoversion ist voll funktionsfähig, allerdings ist die Größe des erzeugten Codes auf 4KB begrenzt. • Programmierung in Assembler Für Entwickler welche möglichst hardwarenah programmieren möchten bietet sich die Entwicklungsumgebung AVR-Studio von Atmel an. Sie verfügt sowohl über einen Editor als auch Debugger und integrierten Simulator. Atmel bietet das AVR-Studio unter http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 zum kostenlosen Downl... | |||
| 12 - simples BASCOM Programm?!?!? könnt ihr mir beim erklären helfen???? -- simples BASCOM Programm?!?!? könnt ihr mir beim erklären helfen???? | |||
| Hallo Bastelheini,
Du musst für den ATmega8 auch die entsprechende Definitionsdatei einbinden: $regfile = "m8def.dat" Dann musst du deine Taktfrequenz dem Compiler übergeben, nicht stumpf abschreiben, was im Tutorial steht: (Aus den PNs habe ich erfahren, dass es 8MHz sind): $crystal = 80000000 '8MHz So, dann geht das Programm los: Ich empfehle wärmstens, immer das passende Datenblatt im Hintergrund laufen zu haben, dann kann man sich schnell helfen: Das Register DDRx legt fest, ob der entsprechende PIN ein Ein- oder Ausgang ist. Ist der Pin ein Eingang (entsprechendes Bit ist dann 0), dann lässt sich noch ein sog. Pull-Up-Widerstand an- oder ausschalten, indem man das entsprechende Bit im PORTx-Register setzt. Es gibt also für alle IO-Pins 3 Register: * Das DDRx-Register (Data Direction Register) für Einstellung ob Ein- oder Ausgang * Das PORTx-Register für die Datenausgabe (wenn du hier ein Bit setzt, dann geht der entsprechende Pin auf High) (Wenn der Pin als Eingang definiert wurde und man die gleiche Bitposition in PORTx auf 1 setzt, dann wird der Pullup eingeschaltet. Weitere Kombinationen dieser beiden Register PORTx und DDRx bitte im Datenblatt nachsehen... | |||
| 13 - Verkehrsampel -- Verkehrsampel | |||
Hallo kleines Alphabet
Warum kein µC(Mikrocontroller)? Das wehre vom Schaltungsaufwand das einfachste. Wenn du es aber mit Logik realisieren willst brauchst du einen Taktquelle (NE555), einen Zähler und eine Decoderschaltung, die ein bisschen größer ausfallen dürfte. Ist das ungefähr die Schaltfolge? rot rot + gelb grün - grün - grün - grün gelb rot .. Da der Taktgenerator mit einer festen Frequenz lauft, sinnvollerweise mit dem gemeinsamen Teiler der Einzelzeiten müssen mehrere Ausgänge des Decoders miteinander oder verknüpft werden. (Bei einem EPROM wird er eben entsprechend programmiert.) Die Programmiersoftware für die AVR-Mikrocontroller kann man kostenlos herunterladen. Zum Programmieren braucht man auch nicht extra ein teures Programmiergerät kaufen. AVR Studio 4 (Entwicklungsumgebung, Assembler, Simulator) http://www.atmel.com/dyn/products/tools.asp?family_id=607#798 WinAVR (C-Compiler kann in AVR-Studio eingebunden werden) | |||
| 14 - Programmcounter-Sprünge ??? -- Programmcounter-Sprünge ??? | |||
| Das geht natürlich so auch nicht.
Wofür hat der Hersteller sich nur soviel Mühe mit dem Simulator und der Beschreibung gemacht, wenn das nicht benutzt wird ? Die erste grobe Macke, bei der Wunsch und Wirklichkeit nicht übereinstimmt, sehe ich hier: movlw D'8' ; lade 0 ins w-register Der nächste Klops hier: incf Progzähler,f movf ProgZähler,W 1.) Den ersten Befehl kannst du dir eigentlich schenken, denn du überschreibst das Ergebnis sofort. Allenfalls wird dadurch die Z-Flag gesetzt. 2.) Verträgt der Assembler, außer in Literalen, überhaupt Umlaute ? Sollte mich wundern. Jedenfalls enthält die Variable ProgZähler nachher irgendeinen Wert, der zufällig in W stand. Beim erstenmal, ist das wahrscheinlich noch die 8 aus der seltsamen Initialisierung, aber auch die führt vermutlich zu einem Programmabsturz, da der daraus resultierende Sprung addwf PCL,8 zu einem Sprung hinter die Jumptable führt. ... | |||
| 15 - Asuro-Roboter als Einstieg für 80C51-Derivate -- Asuro-Roboter als Einstieg für 80C51-Derivate | |||
| Da passt doch etwas nicht.
> ASURO is equipped with an Atmel AVR RISC-processor > and two independently controlled motors, an optical > linetracer, six collision-detector switches, two > odometer-sensors, three indicator LEDs and an IR-Interface > for programming and remote controlling by a PC. http://www.arexx.com/arexx.php?cmd=goto&cparam=p_asuro.dat Die 8051-Familie weißt eine ganz andere Architektur als die AVR-Familie auf. Bei dem 8051 handelt es sich um einen CISC (Complex Instruction Set Computing) http://de.wikipedia.org/wiki/CISC Der µC (Mikrocontroller) ist aber auch schon mehr als 20 Jahre alt. 1980 http://de.wikipedia.org/wiki/8051 Die Entwicklungssoftware für die AVR-Familie von Atmel kann man sich kostenlos im Internet herunterladen: | |||
| 16 - 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... | |||
| 17 - PIC programmieren mit PICALLW -- PIC programmieren mit PICALLW | |||
| Mit dieser SW kannst du zunächst einmal dein Assembler- Programm schreiben, wobei der Editor dich z.B. durch Farbgebung bestimmter Begriffe unterstützt.
Danach kannst du das Programm damit assemblieren, es also in die Maschinensprache umwandeln, wobei du verschiedene Format von Outputdateien erzeugen kannst. Evtl. kannst du bei dieser Gelegenheit auch externe, bereits getestete Programmteile einbinden. Der nächste Schritt ist meist eine Simulation des Programmablaufs mit dem eingebauten Simulator/Debugger. Hierbei treten schon viele Programmierfehler zu Tage, bei denen du am in Echtzeit laufenden Prozessor nur das fehlerhafte Ergebnis besichtigen kannst. Selbstverständlich ist auch ein Disassembler vorhanden. Weiter ist die IDE in der Lage die von Microchip hergestellten Programmiergeräte anzusteuern. Inwieweit das auch mit Fremdfabrikaten funktiert, weiß ich nicht. Eine entsprechende Kompatibilitätserklärung sollte der Fremdhersteller abgeben. ... | |||
| 18 - PIC -- PIC | |||
| Hi,
wenn man ein bisserl mehr machen will, würde ich auch zum Atmel raten. Der 8515er hat 8K Flash Speicher, 512 Byte EEprom und 512 Byte Ram on Chip. Dazu noch einen UART, SPI, PWM und IRQ Eingänge... Der Assembler und der Simulator sind frei erhältlich. Es gibt (noch - wird wohl bald durch JTAG abgelöst) einen recht guten In Circuit Emulator (ICE200 hiess der glaube ich), den man auch noch bezahlen kann (fragt mich jetzt nicht nach dem genauen Preis | |||
| 19 - 2 Impulse mit bestimmter Frequenz ausgeben -- 2 Impulse mit bestimmter Frequenz ausgeben | |||
| Also _ich_ würde dafür ein paar Warteschleifen in einen PIC12C509A programmieren, einfach weil ich den vorrätig habe und er nicht viel kostet (1x programmierbar). Das Entwicklungsprogramm für die PIC-Pozessoren (Assembler, Simulator) gibts bei www.microchip.com umsonst und Schaltungen für simples Programmiergerät sollten im Netz zu finden sein. Zwei Pins im Gegentakt geben mehr Ausgangsspannung als nur einer. Der eingebaute RC-Generator ändert sich im Temperaturbereich von -40°C..+125°C nur etwa +- 5%. Alternativ kannst Du auch mit Quarz betreiben. Das Debugging kann man auf einem PC16F84 machen, der ist zwar teurer, aber dafür elektrisch löschbar. Wenn Du ein bisschen basteln willst, könntest Du es auch mal mit einer 74HC14 oder einem anderen 6-fach invertierenden Schmitt-Trigger versuchen. Jede Stufe davon kann garnicht anders als schwingen, wenn Du sie nur rückkoppelst. Wichtig dürfte in jeden Fall sein, daß Du die Resonanzfrequenz von Deinem Piezo gut triffst, damit es nicht zu leise wird. Verwende in frequenzbestimmenden Kreisen keine der hochkapazitiven Keramikkondensatoren mit X7R oder Z5U Massen. Mit denen kannst Du Thermometer... |
|
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 17 Beiträge im Durchschnitt pro Tag heute wurden bisher 6 Beiträge verfasst 11 Besucher in den letzten 60 Sekunden alle 5.45 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |