Hallo liebe Elektronik Freunde, ich bin absoluter Neuling in Sachen elektronik, Wenns um das Verständnis von Grundlagen geht stöß ich schon auf meine Grenzen, es geht um das Programmieren eines Mikrocontrollers der Familie 80C517A von Siemens. ich weiß dass die maschine binär arbeitet, wir haben den Fall dass wir mit hexadezimaldarstellung also mit einem 16 bit rechner arbeiten. Wenn ich mir aber so meine Klausuraufgaben anschaue, fehlt mir jeglicher ansatz. Die Aufgabenstellung jeder Klausur ist dieselbe, es wird nur ein anderes Beispiel abverlangt Zwei Beispiel: 1)Realisieren Sie eine Zeitüberwachung für ein Uhrenpendel. Das Uhrenpendel hat einen Sollfrequenz von einem Hertz.Geben Sie den Fehler über die serielle Schnittstelle aus a) Erstellen Sie einen Anschlussplan an den 80C517A b) Schreiben Sie einen Struktogramm für diese Aufgabe c) Schreiben Sie einen Prorgamm für den 80C517A 2.) Realisieren Sie einen Tankfüllmessgerät. Pro dm Höhe(Länge) erhöht sich die Spannung um 0,5 V. Der Durchmesser beträgt 20 dm. Geben Sie die Füllmenge in Liter als BCD Wert aus.Hinweis: V = D(quadrat)*pi/4*h a) Erstellen Sie einen Anschlussplan mit Messaufbau an den 80C517A b) Schreiben Sie einen Struktogramm für diese Aufgabe c) Schreiben Sie einen Prorgamm für den 80C517A Ich habe wirklich absolut kein Schimmer wie ich die a)-c) lösen soll. Könnt mir z.B. sagen wie ich bei a) überhaupt vorgehen muss. ich weiß, dass ich irgendwie ein Multiplexer/Demultiplexer habe der Steuereingänge hat, Irgendwie habe ich einen taktflnkengesteuerten D_Flipflop zum speichern der einzelnen Bits, also des high und Low pegels. ich weiß im Prinzip gar nicht wie ich dazu noch ein Programm schreiben soll Ich kenne mich mit den Assembler Befehlssatz zumidest aus Vielen dank für eure Hilfe
:
Verschoben durch User
Das hier ist kein Hausaufgaben- und auch kein "Ich habe im Unterricht lieber {mein Smartphone massiert|die schönen Schnecke aus der dritten Reihe angehimmelt|gefehlt|Zeitung gelesen} - jetzt muss mir jemand ganz dringend helfen !!111eineinself"-Forum. Klingt vielleicht hart, ist es sicherlich auch, aber wenn Dir in einer Klausur tatsächlich komplett unlösbare Aufgaben gestellt werden, dann können die Deine Mitschüler auch nicht lösen und der zuständige Lehrer bekommt Ärger. Solltest aber nur Du Probleme mit dem Verständnis haben, gibt es etwas, was Dich von Deinen Mitschülern unterscheidet. Na?
Elektronik_Neuling schrieb: > wir haben den > Fall dass wir mit hexadezimaldarstellung also mit einem 16 bit rechner > arbeiten. Nö. Der 80C517 ist eine 8-bit Maschine wie alle MCS51 Derivate. Mir scheint, du hast allerdings so gut wie nicht aufgepasst, denn diese Fragen sind ja nicht vom Himmel gefallen. Als Tipp: Du wirst einen Timer benötigen, einen genauen Taktoszillator und ein wenig Rechnerei, um Aufgabe 1 zu lösen. Du wirst dich also mit der Onchip Peripherie des 80C517 beschäftigen müssen. AD Wandler und Timer vor allem. Ansonsten gilt hier Beitrag "Einheitlicher Umgang mit faulen Schülern etc.?"
:
Bearbeitet durch User
@ Elektronik_Neuling (Gast) >es geht um das Programmieren eines Mikrocontrollers der Familie 80C517A >von Siemens. Einer der Dutzenden 8051 Kopien. > ich weiß dass die maschine binär arbeitet, wir haben den >Fall dass wir mit hexadezimaldarstellung also mit einem 16 bit rechner >arbeiten. ??? > Wenn ich mir aber so meine Klausuraufgaben anschaue, fehlt mir >jeglicher ansatz. Schlecht. >1)Realisieren Sie eine Zeitüberwachung für ein Uhrenpendel. Das >Uhrenpendel hat einen Sollfrequenz von einem Hertz.Geben Sie den Fehler >über die serielle Schnittstelle aus >a) Erstellen Sie einen Anschlussplan an den 80C517A >b) Schreiben Sie einen Struktogramm für diese Aufgabe >c) Schreiben Sie einen Prorgamm für den 80C517A Hier soll die Periodendauer des Pendels gemessen werden. Dazu hat man wahrscheinlich einen Sensor, der beim Durchschwingen einen digitalen Puls ausgibt. Wie der genau funktioniert ist nebensächlich, du sollst die Auswertung programmieren. Zeiten misst man mit einem Timer. Wenn es besonders genau sein soll, mit der Capture Compare Einheit, die fast alle Controller haben. Wenn also ein Capture-Ereignis erkannt wird, kann man das per Polling oder Interrupt feststellen. Dann liest man den gespeicherten Zeitstempel aus und bildet die Differenz zum vorherigen Zeitstempel. Das ist dann die Periodendauer. Die kann man dann per UART ausgeben. Für den Anfang reicht Polling, das ist einfacher. Das sollte als Ansatz genügen. >2.) Realisieren Sie einen Tankfüllmessgerät. Pro dm Höhe(Länge) erhöht >sich die Spannung um 0,5 V. Der Durchmesser beträgt 20 dm. Geben Sie die >Füllmenge in Liter als BCD Wert aus.Hinweis: V = D(quadrat)*pi/4*h Was nettes mit dem ADC. >a) Erstellen Sie einen Anschlussplan mit Messaufbau an den 80C517A >b) Schreiben Sie einen Struktogramm für diese Aufgabe >c) Schreiben Sie einen Prorgamm für den 80C517A ADC einlesen, in Volumen umrechnen und auf dem Terminal (UART) oder LCD ausgeben. Siehe auch Festkommaarithmetik. >Ich habe wirklich absolut kein Schimmer wie ich die a)-c) lösen soll. Dann hast du die ganze Zeit im Unterricht gepennt. >Könnt mir z.B. sagen wie ich bei a) überhaupt vorgehen muss. ich weiß, >dass ich irgendwie ein Multiplexer/Demultiplexer habe der Steuereingänge >hat, Irgendwie habe ich einen taktflnkengesteuerten D_Flipflop zum >speichern der einzelnen Bits, also des high und Low pegels. Nö. Wenn gleich viel von dem Kram im uC drinsteckt, muss dich das als Programmierer keine Sekunde interessieren. Du willst programmieren, nicht den uC nachbauen. > ich weiß im >Prinzip gar nicht wie ich dazu noch ein Programm schreiben soll Schon wieder gepennt? Oder Kreide holen gewesen? >Ich kenne mich mit den Assembler Befehlssatz zumidest aus Na dann leg mal los. Aber die Befehle kommen am Schluß. Arebite die Aufgabe in der Reihenfolge ab, wie virgegeben, dass passt schon.
Rufus Τ. F. schrieb: > Klingt vielleicht hart, ist es sicherlich auch, aber wenn Dir in einer > Klausur tatsächlich komplett unlösbare Aufgaben gestellt werden, dann > können die Deine Mitschüler auch nicht lösen und der zuständige Lehrer > bekommt Ärger. Absolut richtig. Laß es darauf ankommen. Wenn alle Anderen auch krachen gehen, dann ist derjenige, der das Rüstzeug hätte erklären sollen, ein Stümper. Diese Formulierungen lassen auch darauf schließen: Elektronik_Neuling schrieb: > a) Erstellen Sie einen Anschlussplan mit Messaufbau an den 80C517A > b) Schreiben Sie einen Struktogramm für diese Aufgabe > c) Schreiben Sie einen Prorgamm für den 80C517A Kurz nach der sog. Wende mußte ich auf diese Weise auch einmal einen Knilch, der sich Dozent nannte, "abschießen". MfG Paul
@ Paul Baumann (paul_baumann) >Stümper. Diese Formulierungen lassen auch darauf schließen: Wieso? >> a) Erstellen Sie einen Anschlussplan mit Messaufbau an den 80C517A >> b) Schreiben Sie einen Struktogramm für diese Aufgabe >> c) Schreiben Sie einen Prorgamm für den 80C517A Was ist daran zu beanstanden? Eine ganz normale Textaufgabe, bei der halt nicht alles vorgekaut ist.
Ich konnte den Unterricht wegen deppressiven Störungen nicht besuchen, und zweitens möchte ich nur ein Ansatz/eine kleine Hilfe wie ich bei solchen Aufgaben vorgehen muss und keine ausgearbeitete Lösung der Aufgabe um gottes willen. Davon habe ich absolut gar nichts und das schadet mir. Ich weiß z.b. nicht wie ich bei der Erstellung des Anschlussplans an den Messaufbau mit Berücksichtigung der Pinbelegung vorgehen muss und verstehe denn sinn und zweck eines Sprungbefehls und eines Unterprogramms nicht. Ich bedanke mich ganz herzlich für diejenigen die mich bei meiner Anfrage verstanden haben. MFG Elektronik_Neuling
Falk B. schrieb: > Was ist daran zu beanstanden? Das: > Schreiben Sie einen Struktogramm > Schreiben Sie einen Prorgamm MfG Paul
@Adem Bektas (elektronik_neuling) >Ich konnte den Unterricht wegen deppressiven Störungen nicht besuchen, Wenn das wirklich stimmt, fehlt dir ein Jahr Unterricht. Das kann man nicht einfach mal so nachholen oder gar mit ein bischen Hausaufgaben und Übung ersetzen. >und zweitens möchte ich nur ein Ansatz/eine kleine Hilfe wie ich bei >solchen Aufgaben vorgehen muss und keine ausgearbeitete Lösung OK. >Ich weiß z.b. nicht wie ich bei der Erstellung des Anschlussplans an den >Messaufbau mit Berücksichtigung der Pinbelegung vorgehen muss Nun, man muss die Signale dort anschließen, wo man sie sinnvoll verarbeiten kann. Den digitalen Sensor für die Pendelmessung muss man dort anschließen, wo auch die Input Capture Funktion beim deinem Mikrocontroller eingebaut ist. Das gleiche gilt für den AD-Wandler Eingang. > und >verstehe denn sinn und zweck eines Sprungbefehls und eines >Unterprogramms nicht. Uffff! Wenn dir DERMAßEN Grundlagen fehlen, dann darfst du diese Aufgabenstellungen hier vorerst vergessen. Dann musst du erstmal das kleine 1x2 des Programmierens lernen. Fang mit "Hello World" an.
@ Paul Baumann (paul_baumann) >> Was ist daran zu beanstanden? >> Schreiben Sie einen Struktogramm >> Schreiben Sie einen Prorgamm Das sind Tippfehler vom OP, eher nicht vom Dozenten. Ausserdem sind wie hier nicht bei den Germanisten, wenn gleich mehrheitlich bei den Germanen ;-)
Adem B. schrieb: > möchte ich nur ein Ansatz/eine kleine Hilfe wie ich bei solchen > Aufgaben vorgehen muss und keine ausgearbeitete Lösung der Aufgabe um > gottes willen. Davon habe ich absolut gar nichts und das schadet mir. Dann stelle bitte genauer dar, woran es hapert bzw. wo genau Deine fehlstundenbedingten Wissenslücken sind. Das Ausgangsposting klang nämlich für mich schon eher nach "Ich weiss so gut wie nix und brauche Lösung für Problem 1 a-c und 2 a-c. Und wenn ich schon am rant-en bin: Ein aussagekräftiges Subject ("Wichtige Anfrage" ist das Gegenteil davon) erhöht die Wahrscheinlichkeit für zielführende Antworten. > Ich weiß z.b. nicht wie ich bei der Erstellung des Anschlussplans an > den Messaufbau mit Berücksichtigung der Pinbelegung vorgehen muss Ohne den Siemes-Controller zu kennen: Du musst die Pins zweckmässig bewschalten. Beispielsweise ist es sinnvoll, an den Pins für die Spannungsversorgung die Versorgungsspannung anzuschliessen, an den Taktpins deine Taktversorgung, an Eingänge deinen Sensor etc. > und verstehe denn sinn und zweck eines Sprungbefehls und eines > Unterprogramms nicht. Naja, Sprungbefehle sind schon nützlich, beispielsweise hast Du einen Sensor, dessen Messwert mit einem Grenzwert verglichen wird, wenn der überschritten ist, dann soll eine rote Lampe leuchten. Dazu gibt es zum Beispiel einen bedingten Sprungbefehl, nennen wir ihn SPRINGGRÖ, der springt, wenn der Vergleichswert grösser als die Vorgabe ist. Das Programm könnte dann so aussehen: PROGRAMMBEGINN: LAMPEAUS; LESE Sensorwert ins Arbeitsregister ein SPRINGGRÖ Grenzwert 'LAMPEEIN' SPRINGE 'PROGRAMMBEGINN' PROGRAMMENDE! LAMPEEIN: PINEINSCHALT Pin_an_Lampe; RETURN; Das ist zwar unelegant (die Lampe ist immer ausgeschaltet und wird nur kurz durch das Unterprogramm eingeschaltet), funktioniert aber prinzipiell. Mit einem DELAY im Unterprogramm wird es schon ein bisschen besser. Etc... MfG, MdB
:
Bearbeitet durch User
Falk B. schrieb: > Das sind Tippfehler vom OP, eher nicht vom Dozenten. So? Na dann schreib doch mal ein Struktogramm... Adem B. schrieb: > Ich konnte den Unterricht wegen deppressiven Störungen nicht besuchen Was ne blöde Ausrede! Dann laß Dir halt ein Jahr zusätzlich geben und mach das nochmal. Bei ernsthaften gesundheitlichen Gründen genehmigt das die HS auch, ansonsten liegts wohl an Dir. Falk B. schrieb: > Wie der genau funktioniert ist nebensächlich, du sollst > die Auswertung programmieren. Zumindest fehlt schonmal die Info, ob der Sensor 1 (maximaler Ausschlag) oder 2 (Nulldurchgang) Impulse pro Periode liefert. Für die Bestimmung der Gangabweichung nicht ganz unerheblich. Und so eine typische beliebte Falle, wo der Prof dann "Ätsch, daran hast Du nicht gedacht. Sechs, setzen." sagen kann.
Standardliteratur für 8051-er ist das "Mikrocontroller-Kochbuch" von Andreas Roth. Die Aufgaben sind nicht so, dass man sie aus dem Stehgreif bearbeiten könnte, nur weil man mal was über Bin und Hex gehört hat. Den enstsprechenden Controller mit Beispielanwendungen und Peripherie werdet ihr sicher eine Zeitlang durchgekaut haben.
Elektronik_Neuling schrieb: > ich bin absoluter Neuling in Sachen elektronik, Wenns um das Verständnis > von Grundlagen geht stöß ich schon auf meine Grenzen, Ohne Grundlagen geht gar nichts weiter... Elektronik_Neuling schrieb: > es geht um das Programmieren eines Mikrocontrollers Na, dann brauchst eigentlich nur programmieren können, obwohl keine Ahnung von Strom, Spannung, Widerstand - also URI... Du kannst auch Dein Leben programmieren, obwohl Du die Grundlagen nicht verstanden hast! So wird das NICHTS! Ich bin Analogtechniker, habe mit Programmen nichts am Hut, aber ich weiß, wie ich mit ein paar Bauteilen etwas funktionelles zusammenbauen kann, dafür braucht man viele Grundlagen... Es ist sicher besser, Du wirst Verkäufer, dann kannst Du mangels Grundlagen irgend einem Trottel etwas aufschwatzen, von dem auch Du selbst keine Ahnung hast !!! Such Dir einen anderen Beruf! Mani
Falk B. schrieb: > Fang mit "Hello World" an. vielleicht mit Halloween, da kann man ja auch etwas anderes sein als Grundlagenverweigerer...
:
Bearbeitet durch User
>Es ist sicher besser, Du wirst Verkäufer, dann kannst Du mangels >Grundlagen irgend einem Trottel etwas aufschwatzen, von dem auch >Du selbst keine Ahnung hast !!! Sonst ist unser Mani W. doch immer der Friedensengel in Person und um salbungsvolles Geseire nicht verlegen. Und jetzt pisst du anderen Leuten sogar unter Diffamierung ganzer Berufe wie z.B. Verkäufer ans Bein?! Ziemlich erbärmlich für dein sonst zur Schau gestelltes Selbstverständnis.
Hallo Manni W, wenn du mit Grundlagen wie Strom, Spannung Widerstand, Sensorik verstehst, dann hast du mich missverstanden. das habe ich nicht gemeint. Ich habe mich speziell auf die TTL Logik bezogen. Ich weiß dass ich bei bestimmten Spannungswerten einen High bzw. Low pegel habe. Aber die Elektrotechnischen Grundlagen dürften schon drin sein bei mir. Ich habe mich jetzt auf den Acker gehauen und frische mir mein Assembler Verständnis auf. Aber ich danke dir für deine tollen Bemerkungen, man sollte alle Berufe wertschätzen. wenns kein Verkäufer auf der Welt gibt, dann bekommen wir kein Essen, muss man bedenken. Also aufpassen! Natürlich ist mein eröffneter Beitrag nicht mit den Norm des Forums angemessen, in Zukunft werde ich darauf achten. Vielen Dank für diejenigen dir mir weitergeholfen haben
:
Bearbeitet durch User
naja, falk hat dir ja in seinem Beitrag schon die entsprechenden Hinweise gegeben, wie der Rahmen-Ablauf deiner beiden Aufgaben ist. Falk B. schrieb: > (Aufgabe 1) > Hier soll die Periodendauer des Pendels gemessen werden. Dazu hat man > wahrscheinlich einen Sensor, der beim Durchschwingen einen digitalen > Puls ausgibt. Wie der genau funktioniert ist nebensächlich, du sollst > die Auswertung programmieren. Zeiten misst man mit einem Timer. Wenn es > besonders genau sein soll, mit der Capture Compare Einheit, die fast > alle Controller haben. Wenn also ein Capture-Ereignis erkannt wird, kann > man das per Polling oder Interrupt feststellen. Dann liest man den > gespeicherten Zeitstempel aus und bildet die Differenz zum vorherigen > Zeitstempel. Das ist dann die Periodendauer. Die kann man dann per UART > ausgeben. Für den Anfang reicht Polling, das ist einfacher. Das sollte > als Ansatz genügen. "verstehst" du denn seine Hinweise, und wärest du in der Lage, daraus ein Struktogramm zu erstellen? Ein Struktogramm ist halt einfach nur eine bestimmte (strukturierte) Darstellungsform eines Ablaufplanes. bedenke: "programmieren" ist zwar auch das benennen spezieller programmierbefehle (in Assembler, C oder welche Sprache auch immer), aber das kommt "ganz zum Schluss". Zu allererst einmal musst du dir des Ablaufs bewust werden. Überlege dir dazu als Übung [zur Strukturierung und zum "Detail-denken"] z.B. mal folgende "einfache" Aufgabenstellung: Das Schälen einer Banane. Du (als Mensch) greifst mit der linken Hand eine Banane am Frucht"ende", und mit der rechten machst du nun .... Eine Machinensteuerung, welche zwei Roboterarme hat, kennt das alles nicht, man muss es sehr genau vordenken und beschreiben was zu tun ist. ein Ablauf wär dann in etwa: 1. Identifziere Anfang und Ende der Banane 2. Bewege deinen Arm über die Banane (sie liegt auf dem Tisch) 3. greife mit der linken Hand den Anfang der Banane 4. Bewege deinen Arm über den Tisch, so daß der rechte Arm frei tätig werden kann .... --> das der "Schritt 2." zur Ansteuerung eines Roboter-Armes (anstelle deines menschlichen Armes bzw. Hand) eine komplexe Teil-Aufgabe ist, und dass dazu komplizierte Maschinenbefehle benötigt werden, ist erst mal egal. Fakt ist auf jeden Fall, dass dieser Schritt 2 elementar notwendig ist. Genau so ist es mit deinen Aufgabenstellungen: denke genau vor, was alles in einzelnen Schritten zu tun ist. Beschreibe diese, und gehe die einzelne Abfolge immer wieder gedanklich durch, ob das gewünschte raus kommt. Wenn dann ales genau durchdacht ist, kannst du dir Gedanken über zugehörige Programmierbefehle, oder Registerbelegungen machen.
:
Bearbeitet durch User
Ich entschuldige mich mal für meinen scheinbar schlechten Tag, wollte niemandem zu nahe steigen und auch niemand bloß stellen... Tut mir echt leid!
Wegstaben V. schrieb: > naja, falk hat dir ja in seinem Beitrag schon die entsprechenden > Hinweise gegeben, wie der Rahmen-Ablauf deiner beiden Aufgaben ist. > > Falk B. schrieb: > >> (Aufgabe 1) > >> Hier soll die Periodendauer des Pendels gemessen werden. Dazu hat man >> wahrscheinlich einen Sensor, der beim Durchschwingen einen digitalen >> Puls ausgibt. Wie der genau funktioniert ist nebensächlich, du sollst >> die Auswertung programmieren. Zeiten misst man mit einem Timer. Wenn es >> besonders genau sein soll, mit der Capture Compare Einheit, die fast >> alle Controller haben. Wenn also ein Capture-Ereignis erkannt wird, kann >> man das per Polling oder Interrupt feststellen. Dann liest man den >> gespeicherten Zeitstempel aus und bildet die Differenz zum vorherigen >> Zeitstempel. Das ist dann die Periodendauer. Die kann man dann per UART >> ausgeben. Für den Anfang reicht Polling, das ist einfacher. Das sollte >> als Ansatz genügen. > > "verstehst" du denn seine Hinweise, und wärest du in der Lage, daraus > ein Struktogramm zu erstellen? Ein Struktogramm ist halt einfach nur > eine bestimmte (strukturierte) Darstellungsform eines Ablaufplanes. Wichtig: Dieses Struktogramm muss auch erst mal überhaupt nichts mit einem Computer zu tun haben. Das ist einfach erstmal nur ein formales 'Kochrezept' wie man vorgeht. Es ist noch nicht falsch, wenn die erste Version eines Struktogramms dafür geeignet wäre die Fragestellung zu beatworten: Wie würde ich als Mensch das machen, wenn ich diese Aufgabenstellung lösen müsste und welche Hilfsmittel brauche ich dazu? Offenbar braucht man ja eine Uhr und irgendeinen Mechanismus, mit dem man zweifelsfrei eine immer gleiche Schwingposition des Pendels feststellen kann. Mit diesen beiden Hilfsmitteln, wie ist dann der Ablauf, wenn du als Mensch die Aufgabe lösen sollst? Welche Schritte gilt es in welcher Reihenfolge zu machen, welche Entscheidungen sind zu treffen? Welche Schritte hängen von diesen Entscheidungen ab. Wenn du so ein Kochrezeot hast und das deiner kleinen Schwester (7 Jahre alt) vorlegen kannst und sie kann die Aufgabe ganz alleine lösen indem sie sich einfach nur an dieses Kochrezept hält, dann hast du dein erstes Zwischenziel erreicht. Und erst dann, nachdem klar ist, wie die generelle Lösungsstrategie funktioniert, erst dann bewegt man sich in Richtung Programmieren, wobei auch hier man immer noch nicht beim Code schreiben ist.
Marek N. schrieb: > dass man sie aus dem Stehgreif bearbeiten könnte Sowas gibts ja auch gar nicht... ;-) Ein Stegreif diente dagegen Reitern als Hilfsmittel. Und er mussste deshalb seine Aufgaben "aus dem Stegreif" erledigen können.
Lothar M. schrieb: > Und er mussste.... ...aber ganz dringend, wenn es schon mit 3 "s" geschrieben werden soll. MfG Paul
Adem B. schrieb: > Ich habe mich speziell auf die TTL Logik bezogen. Die ist schon seit über 30 Jahren obsolet.
Adem B. schrieb: > Ich konnte den Unterricht wegen deppressiven Störungen nicht besuchen, > und zweitens möchte ich nur ein Ansatz/eine kleine Hilfe wie ich bei > solchen Aufgaben vorgehen muss und keine ausgearbeitete Lösung der > Aufgabe um gottes willen. Eine kleine Hilfe ist nicht möglich, weil Dir die elementarsten Grundlagen fehlen. Um ein Jahr Nichtteilnahme am Unterricht aufzuholen, brauchst Du ein Jahr.
Hallo Adem, hast du denn dein Problem mittlerweile lösen können, bzw. einen Unterstützer/Erklärer gefunden?
:
Bearbeitet durch User
also ohne die Grundlagen zu lernen kann ich so lange auf der Aufgabe rumprobieren wie ich will. Deshalb bin bin ich noch in der Wiederholungsphase. ich verstehe folgende Sachen nicht - wann ich bei einem Datenspeicher die direkte oder indirekte Addressierung benutzen muss. Zudem ist mir der Special Function Register, Data Pointer wildfremd. obwohl ich mir die Erklärungen dazu angeschaut habe. Hinzu kommt der Stackpointer. und ja der Carry macht mir das leben schwer. - Der Interrupt Flag???. Der Begriff Flag ist mir nicht geläufig. ich habe mir die Erklärungen angeschaut. nicht weitergekommen. Kann mir da jemand eine vernünftige Erklöärung zaubern. ICh bedanke mich sehr der Anfrage bei dir MFG
ein flag ist ein bit mit welchem die cpu das programm über verschieden Zustandsänderungen informiert. "carry" steht für einen Accu übertrag . mit "interrupt" flag wird angezeigt das ein Interrupt eingetroffen ist. ... was das programm damit macht entscheidet der programmierer. Die Kenntnis der Register und Flags sowie deren Verwendung ist essentiell für den ASM Programmierer. Die Benutzung höhrer Programmiersprachen befreit in aller regel davon. Namaste
@ Adem Bektas (elektronik_neuling) >also ohne die Grundlagen zu lernen kann ich so lange auf der Aufgabe >rumprobieren wie ich will. So sieht es aus. > Deshalb bin bin ich noch in der >Wiederholungsphase. Gut. >- wann ich bei einem Datenspeicher die direkte oder indirekte >Addressierung benutzen muss. Direkte Adressierung nutzt man bei einfachen Variablen wie a, b, tmp und wie du sie immer nennen willst. Die Indirekte Adressierung nimmt man bei Arrays, also Datenblöcken mit mehreren, gleichen Elementen, welche über den Namen + Index angesprochen werden. Also test(5) oder so. In Assembler ist die Schreibweise aber anders. Such dir ein Tutorial mit Beispielen für den 8051, hier gibt es nur AVR und der hat einen andere ASM-Syntax. Das verwirrt dich nur. > Zudem ist mir der Special Function >Register, Das sind alle, speziellen Hardware-Register, welche die Hardware steuer. Also die IO-Ports, Timer, UART, ADC etx. Diese haben spezielle Namen und sitzen logisch nicht in der CPU sindern im Speicher. https://www.mikrocontroller.net/articles/Speicher#Register > Data Pointer wildfremd. Braucht man immer bei indirekter Adressierung. Damit zeigt man auf die Speicherstelle, welche man lesen oder schreiben will. > obwohl ich mir die Erklärungen dazu >angeschaut habe. Hinzu kommt der Stackpointer. Auch ein Pointer, allerdings ein spezieller. Der zeigt auf einen Speicherbereich, wo beim Aufruf von Unterprogrammen oder Interrupts die Rücksprungadresse abgelegt wird. In Hochsprachen, teilweise auch Assembler, werden dort auch die Parameter von Funktionen/Unterprogrammen abgelegt, wenn diese aufgerufen werden. >und ja der Carry macht mir das leben schwer. Das Carry ist ein Statusbit, das anzeigt, daß bei der vorherigen Addition, Subtraktion, vergleich oder anderen arithmetischen Operation das Ergebnis größer als 8 Bit wurde. Beispiel: 250 + 10 = 260. Das passt nicht in ein 8 Bit Register, also ist das Ergebnis 4 + Carry=1. Man kann es auch als 9. Bit betrachten, welches bei einer Operation entsteht. >- Der Interrupt Flag???. Der Begriff Flag ist mir nicht geläufig. Das zeigt an, daß ein Interrupt bearbeitet werden kann. Wenn es ausgeschaltet ist, können keine Interrupts bearbeitet werden, es wird wie ein Hauptschalter. Interrupt
Adem B. schrieb: > - Der Interrupt Flag???. Der Begriff Flag ist mir nicht geläufig. Flag = Bit mit spezieller Bedeutung. Z.B. Carry, Parity, Timer Overflow, Interrupt pending usw. Im Gegensatz zu anderen MCs hat der 8051 aber kein Zero-Flag! JZ und JNZ prüfen immer das ACC-Register. Leih Dir mal "Das Microcontroller Kochbuch MCS51" aus, da ist alles erklärt.
Meint Ihr, daß da noch was kommt von Adam Brezel? Ich glaube, er hat inzwischen erkannt, daß er nichts weiß und ist in seine Depressionen zurückgefallen.
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.