Hallo Leute suche dringend Hilfe im Umgang mit der Programmiersprache in BASCOM. Habe ein Programm vorliegen, das ich haarklein und für jedermann verständlich erklären soll, doch habe ich mit diesem Programm noch nie zuvor gearbeitet. Muss bis kommenden Donnerstag zur Prüfung meine Dokumentation vorlegen können. Kann mir jemand weiterhelfen? Habe das Programm mal mit angehängt. Sinn und Zweck der Software ist, dass ich mit einem AVR-Starter-Kit Fernbedienungscodes auslesen und anzeigen lassen kann. Vielen Dank schonmal im Voraus. greez Captain N
Lads dir runter und so geil wie der Code kommentiert ist,was willst du noch erklären??
Also das hier : Lcd " Nico Schweig " Print "--Nico Schweig--" + Chr(10) Waitms 1000 gibt Deinen Vor- und Nachnamen aus.
ich bin auf dem Gebiet der absolute Unterflieger, weil ich bisher nie mit solchen Themen oder Programmen gearbeitet habe. Ich kenne mich noch nicht einmal auf dem Schaltplan wirklich aus, und einige der Befehle kann ich auch nicht wirklich zuordnen. Das ist völlig fremdes Gebiet für mich, aber es wird jetzt erwartet, dass ich das innerhalb einer Woche beherrschen soll. Derzeit versuche ich herauszufinden, ws Port B genau ist, wo er zu finden ist, und was hier jetzt genau geschieht. (ab Zeile 32). Ich weiß nicht, was diese "&"-Symbole zu sagen haben, oder die Dollarzeichen. Bin wie gesagt völliger Neuling auf dem Gebiet. Was ich bisher herausgefunden habe, ist, dass "PortX" angibt, dass Infos auf Port X gespeichert werden sollen, und man zum auslesen anstatt "PortX" "PinX" angeben muss. Im Anschluss an diesen Eintrag füge ich mal ein, was ich bisher geschrieben habe, und wie es in etwa aussehen soll. Das Ganze soll so erläutert werden, dass es jedermann, also auch jemand, der zum ersten Mal ein elektronisches Bauteil in der Hand hat, Schritt für Schritt nachvollziehen kann, was hier jeweils geschieht, was welcher Befehl genau bedeutet etc. Als Anhang noch der Schaltplan zu dem guten Stück. (TARGET 3001 - Datei) --------------------------------------------------- lll. Erstellen der Software - Arbeiten mit BASCOM Betrachten wir uns nun die Struktur der Software, mit deren Hilfe wir die Codes unserer Fernbedienungen auslesen und anzeigen lassen können. Bevor wir mit dem Programmieren richtig beginnen können, müssen wir dem Programm zunächst einmal mitteilen, mit welchem Bauteil es denn überhaupt arbeiten soll. So stellen wir sicher, dass keine Missverständnisse in der Kommunikation zwischen unserem Programm und dem AVR auftreten, die zu Fehlfunktionen führen können. Hierzu dient der Befehl $regfile. Da wir auf unserem AVR den Atmega16 verwenden, müssen wir hierbei auf die Datei m16def.dat verweisen. Der korrekte Befehl lautet also $regfile = "m16def.dat" (siehe Zeile 20 in unserem Beispiel). Nun müssen wir noch regeln, wie schnell unser Programm dem AVR Informationen zukommen lassen darf, damit dieses mit dem Ausführen der Anweisungen nachkommt. Diese Geschwindigkeit, die sogenannte "Datenübertragungsrate", nennt man Baudrate. Der Zahlenwert, den man einer Baudrate zuordnet, gibt an, wieviele Informationen in einer Sekunde übertragen werden sollen. Für unser AVR wollen wir uns auf eine Baudrate von 38400 einigen, also in jeder Sekunde 38400 Informationen auf elektronischem Wege an das AVR weiterleiten. Den hierfür zuständigen Befehl finden wir in unserem Programm in Zeile 28: $baud = 38400 Jetzt, wo wir unser AVR mit unserem Programm gewissermaßen miteinander bekanntgemacht haben, können wir uns daran machen, die einzelnen Stationen zuzuweisen, an denen fortan gearbeitet werden soll, und was genau dort jeweils geschehen soll.
"Das ist völlig fremdes Gebiet für mich, aber es wird jetzt erwartet, dass ich das innerhalb einer Woche beherrschen soll." "Muss bis kommenden Donnerstag zur Prüfung meine Dokumentation vorlegen können." Prüfung in einem völlig fremdem Gebiet. Wo wird denn sowas praktiziert ???
> Bin wie gesagt völliger Neuling auf dem Gebiet.
Nein. Du bist einfach nur zu spät drann.
In der Zeit, in der du auf deine Hardware gewartet hast, hättest du dich
längst mit BASCOM vertraut machen sollen / können.
Was bringts dir, wenn dir hier jemand die Doku schreibt? Spätestens bei
der ersten Frage in deiner Abschlussprüfung bist du aufgeschmissen.
Klingt hart, ist aber so.
wenn ich früher gewusst hätte, was ich machen sollte, hätte ich mich auch mit dem Programm befassen können. Der Vorschlag hierfür kam allerdings auch erst sehr spät. Habe keine Werkstatt zuhause, kein Geld, um mir nötiges Material zu beschaffen, kein funktionstüchtiges Auto, um anderswo regelmäßig arbeiten zu können, und auch keine Zeit wegen der tollen Bahnverbindungen. So kam schließlich irgendwann der Vorschlag vom Prüfer, aus dem AVR einen Fernbedinungstester zu machen, was sich mit so ziemlich all diesen Umständen noch realisieren ließe. Und jetzt sitze ich hier. Ich weiß, dass es verdammt knapp ist, aber ich habe bis einschließlich nächste Woche frei, und noch Zeit zum lernen. Der Prüfer weiß, dass er da keine Wunder erwarten kann, aber ich will es wenigstens fertigstellen udn erklären können. Mit ein paar guten Links über den Umgang mit BASCOM wäre mir auch schon ziemlich geholfen. Die Doku muss ich ja wohl selber schreiben, aber wenn ich nicht verstehe, was in dem Programm da genau geschieht, kann ich auch nichts schreiben.
Machen wir es mal anders herum. An welcher Stelle kommst Du nicht weiter ?
Nico S. wrote: > wenn ich früher gewusst hätte, was ich machen sollte, hätte ich mich > auch mit dem Programm befassen können. Ist kein Grund. Egal was du für ein Projekt machst, Grundlagen müssen sein. Und die kann man auch mit dem BASCOM Simulator, ganz ohne Hardware, lernen > Mit ein paar guten Links über den Umgang mit BASCOM wäre mir auch schon > ziemlich geholfen. google: bascom tutorial das zb. http://www.rowalt.de/mc/index.htm Du kannst bei "Einführung 2" einsteigen.
Also ich hab mir jetzt den Code 5 Minuten angesehen. Ist doch alles Sonnenklar. Vielleicht hilft es Dir die Aliase wieder zurück zu wandeln in die eigentlichen Kommandos. Dann wird klarer was da passiert. Also nicht schlecht wäre wenn Du das Programm Stück für Stück selbst neu schreibst. Dabei beginnst Du mit der Hauptroutine. Dann machst Du Dir klar was die Tastenroutinen machen und dann das wichtige : Die Empfangsroutine. Preisfrage: Was macht dieser Codeschnipsel? Select Case Ire 'IR EingangsPin selektieren Case 0 If Bis = 1 Then 'Bistabiler Zustand, verhindert Bis = 0 'mehrfachschalten. 1mz = 0 'Puls/Pausen- Reset V7 = 0 : For I = 1 To 15 : Next I : V7 = 1 'nur zur Indikation für Oszi Incr Addr 'Array-Zähler der Impulse Tar(addr) = 3mz : 3pp = 3pp + 3mz 'Impulsbreite in Array+Summe ermitteln 3mz = 0 'Zähler Reset End If 'Ende der negativen Flanken Steuerung.
Case 1 If Bis = 0 Then 'Pos. Flankenschalter. Bis = 1 1mz = 0 'Puls/Pausen- Reset End If 'Ende der pos. Flankensteuerung. End Select und was macht dieser Teil?
bin im Moment noch eifrig am vertexten. Wofür genau stehen in BASCOM die Zeichen "&" und das Dollarzeichen vor den Begriffen und Befehlen?
Hex-Zahlen kann ich lesen, aber was bedeuten diese zeichen nun? Das muss ich ja auch mit erläutern. Und weshalb werden in Zeile 32/33 DDRA und PORTA getrennt aufgeführt? Soweit ich das verstehe, wird das Datendirektionsregister doch auch an Port A mit den Pins adressiert. Bzw. wenn nicht, was wird dann mit diesen beiden Werten angegeben?
>Hex-Zahlen kann ich lesen, aber was bedeuten diese zeichen nun? Das muss >ich ja auch mit erläutern. Ohje, jetzt sind mir die Zaunpfähle ausgegangen. Hat noch jemand welche da?
sorry, hab wirklich null Plan von dem ganzen Zeugs, und die Zuordnungen. Deswegen dieses Und-Zeichen udn dieses Dollarzeichen, das sind ja wohl BASCOM-spezifische Begriffe.
> das sind ja wohl BASCOM-spezifische Begriffe.
Genau so ist es, du wirst also nicht drum rum kommen wenigstes die
Grundlagen von BASCOM zu lesen.
bascom unterstützt die Eingabe in verschiedenen Zahlenvormaten. Normalerweise verwendet man normale Dezimalzahlen, daher brauchts da kein Vorzeichen z.B. A=255 Man kann aber auch hex eingeben, dann muss man dem compiler sagen, dass hier hex verwendet wurde durch &H z.B. A=&Hff und genau so ists auch bei binärer eingabe &B a=&B11111111
das $ wird verwendet für bestimmte Konfigurationen z.B. Frame, Stack oder Baudrate und kommt immer mit bestimmten Schlüsselworten über $baud=9600 wird die UART konfiguriert und aktiviert. will man im Programm die Baudrate verändern nimmt man nur noch baud = 19200 $regfile ist einfach die Definition welcher Controller verwendet wird.
Den Code habe ich doch gestern erst in mindestens einem weiteren Beitrag gesehen?! Verfasser war (glaube ich) "Ingo", der das gleiche Problem hatte. ("Fernbedienungstester mit AVR-Starterkit" oder so ähnlich) Das scheint ja ein "feines Ding" zu sein, wenn man von Leuten, die alle offensichtlich vorher noch nie etwas mit Bascom zu tun hatten, eine aus- führliche Erläuterung zum Programm in einer Prüfung verlangt.... Wenn das im Lehrplan nicht enthalten war, geht die Prüfung bei dieser Frage flächendeckend "in die Hose". Spätestens dann wird man sehen, daß die Prüflinge keine Schuld trifft. Das wäre ja so, als ob man von einem Friseur in dessen Prüfung verlangt, eine Sachertorte anzu- fertigen. Staunend Paul
Nico S. wrote:
> Und weshalb werden in Zeile 32/33 DDRA und PORTA getrennt aufgeführt?
DDR und PORT sprechen unterschiedliche Register an, zwei Zeilen drunter
ist das ganze nochmal mit "B" und sogar kommentiert. Wo ist also das
Problem?
Das Problem ist, daß hier einer entweder mords hohl ist oder stinkefaul.
das Problem ist zum einen, dass ich mit der Materie noch nie zuvor zu tun hatte, und dass ich an dieser Stelle eben nicht so recht weiß, wie das ganze technisch zu sehen ist. Weil Port A nunmal nur über 8 Pins verfügt, aber weil DDRA (meiner Ansicht nach) ebenso an diesen Pins angesteuert wird. Ich muss das ganze ja für nen absoluten Neuling verständlich erklären können. Werden hier jetzt nun schaltplantechnisch gesehen zwei verschiedene Pins angesteuert, oder kann hier ein Pin dieses Ports quasi mehrere Funktionen übernehmen? Das würde dann allerdings keinen Sinn machen, wenn die Bits in beiden Fällen unterschiedlich definiert sind. Wo liegt der unterschied? Das UND-Zeichen bedeutet also lediglich, dass danach angegeben wird, in welchem Zahlensystem die Bits dargestellt werden, und das Dollarzeichen gehört einfach zu diversen Befehlen dazu, um kenntlich zu machen, dass es eben programmspezifische Befehle sind?
Nico S. wrote: > das Problem ist zum einen, dass ich mit der Materie noch nie zuvor zu > tun hatte, und dass ich an dieser Stelle eben nicht so recht weiß, wie > das ganze technisch zu sehen ist. <off> Ich kenn mich mit so Spielzeug und Basic auch nicht aus, aber eines würde mich interessieren: Mir ist ein Beitrag von wegen Basic, RC5-Fernbedienung und Prüfung auch schonmal begegnet, daher die Frage: Was genau lernst/studierst du da gerade und vorallem, wie kommt es, dass man dir ganz urplötzlich ein offenbar vollkommen fachfremdes Dingen vorsetzt und dich damit zur Prüfung bittet? </off> > Weil Port A nunmal nur über 8 Pins verfügt, aber weil DDRA (meiner > Ansicht nach) ebenso an diesen Pins angesteuert wird. Ich muss das ganze > ja für nen absoluten Neuling verständlich erklären können. Datenblatt.
> ja für nen absoluten Neuling verständlich erklären können.
Erkläre es so das du es verstehst dann kapiert es jeder.
Der Vorschlag hierfür kam erst sehr spät. Habe keine Werkstatt zuhause, kein Geld, um mir nötiges Material zu beschaffen, kein funktionstüchtiges Auto, um anderswo regelmäßig arbeiten zu können, und auch keine Zeit wegen der tollen Bahnverbindungen. So kam schließlich irgendwann der Vorschlag vom Prüfer, aus dem AVR einen Fernbedinungstester zu machen, was sich mit so ziemlich all diesen Umständen noch realisieren ließe. Den AVR sollten wir zur Zwischenprüfung zusammenbasteln, da wurden Teile, Bestückungspläne etc alles zur Verfügung gestellt. ein kollege von mir und ich sind die einzigen, die den AVR seither nicht mehr zu Gesicht bekommen hatten. Dazu sei angemerkt, dass die Zwischenprüfung generell miserabel ausgefallen war, im theoretischen Teil habe ich als einziger bestanden, und im praktischen Teil wurde niemand auch nur fertig mit dem AVR. Und aufgrund der fehlenden Löt-Erfahrung bot uns der Prüfer zunächst an, bei ihm zuhause ein wenig üben zu dürfen in dessen werkstatt, und bei der Gelegenheit das AVR eigenständig neu zusammenzubauen. Irgendwann wurde es aber zeitlich immer enger bei mir, und irgendwann fing dann die Geschichte mit dem Auto an, weswegen ich fortan auch nicht mehr zum löten kommen konnte. Stattdessen wurde mir versprochen, das das AVR fertig gebastelt werden würde, und ich es fertig überreicht bekommen sollte, sogar mit fertiger Software. Mein Hauptbestandteil der Prüfung solle dann die detaillierte Beschreibung dieser Software umfassen. Das war vor etwa 4-5 Monaten. Seither kam dann immer wieder, er habe es nur zuhause vergessen, dann hieß es er habe es noch nicht fertig, dann hieß es ein andermal, ich würde es definitiv bis Mitte Dezember zugeschickt bekommen, dann hieß es, es würde mit etwas Glück am folgenden Wochenende fertig werden, und dann könnte ich es bei ihm abholen - ohne Auto. Letzte Woche hat er es dann immerhin geschafft, es mir in die Schule mitzubringen - und nun, nach monatelangem hin und hergerenne, halte ich nun endlich mein AVR in Händen, ud durfte mich dann erstmal mit der Software herumschlagen, damit die endlich mal lief. Und nun sitze ich hier, und darf innerhalb einer Woche all das fertig machen, wofür mir ursprünglich mehrere Monate zur Verfügung stehen sollten. Und da ich den Prüfer gut genug kenne, um zu wissen, dass ich mir lieber anderswo qualifizierte Hilfe suche, habe ich mich hier an dieses Forum gewandt
@ "ich": Da is ja grade das Problem an der Sache - dazu muss ich es ja erstmal bis ins letzte Detail verstehen. Und eben dazu habe ich mich hier angemeldet, da ich nicht weiß, wo ich sonst Hilfe her bekommen könnte. Hier sollen einige ziemlich fitte Leute anzutreffen sein.
Hm... hat zwar schon mal einer gesagt im vorigen Thread aber ich muss es nochmal zusammenfassen. Also ein absoluter Neuling und Ahnungsloser in einem Gebiet soll absoluten Neulingen und Ahnungslosen etwas in genau diesem Gebiet erklären. Hähhh? Wer macht denn sowas? Mich beschleicht das Gefühl, daß Du Dir hier versuchst Dir von den Leuten kostenlos und ohne was dazu tun zu müssen Mikrokontrollerprogrammierung in BASCOM an eimem Projektbeispiel beibringen zu lassen. Ich habe wirklich noch nie in meinem Leben gesehen, daß zu einem Projekt in der Schule / Uni keine Unterrichtsunterlagen/Projektunterlagen mit ausgeliefert wurden. Das Du nicht mal die grundlegensden Sachen weißt erschreckt mich total. Ich glaube Dir nicht, daß Dein Lehrer Dir so eine Aufgabe gibt und Dich dann ohne Hinweise im Regen stehen läßt. Aber wenn Du so weiter hartnäckig bleibst und auf armes Opfer des Lehrers machst, dann kommst Du vielleicht am Ende ja noch zum Ziel. Irgendein Blödmann findet sich ja immer der einem was erklärt. Mit solchen Leuten habe ich später auch gearbeitet, außer Joghurt fressen konnten die nix. Faulheit wurde noch nie belohnt.
Nico S. wrote: > Stattdessen wurde mir versprochen, das das AVR fertig gebastelt werden > würde, und ich es fertig überreicht bekommen sollte, sogar mit fertiger > Software. Mein Hauptbestandteil der Prüfung solle dann die detaillierte > Beschreibung dieser Software umfassen. > Das war vor etwa 4-5 Monaten. Deine 5monatige Faulheit hat dich in deine jetzigen Situation gebracht - kein anderen Umstand und keine andere Person. Internet war und ist ja wohl verfügbar, aber scheinbar war dir deine Prüfung auch das nicht wert. jm2c
Ok, ein letzter Versuch noch, zu erklären, was offensichtlich niemand zu verstehen scheint oder es einfach nicht will: Mein Thema zu dieser Projektarbeit hat sich erst so kurzfristig ergeben aufgrund der bereits genannten Umstände. Ursprünglich wollte ich ein Sat-Messgerät bauen, was sich allerdings dann erübrigt hatte mit der Zeit. Nach langem Suchen und Grübeln bin ich durch den Kontakt mit meinem Prüfer auf diesen Vorschlag gekommen - und wie ebenso schon erwähnt wurde mir die Hard- und Software erst vor ein paar Tagen überreicht. Es ist auch längst kein Geheimnis mehr, dass besagter Prüfer nicht gerade der fähigste Mann ist, wofür es auch Zeugen gibt, meinen Chef mit eingeschlossen. Aus eben diesem Grunde wird dieser Prüfer in nächster Zeit auch ersetzt werden, was ebenso schon länger im Gerede ist. Aufgrund der gegebenen Umstände, dass mir nur so wenig Zeit gegeben wurde, und dass selbst die Hilfestellungen nur am Vorankommen gehindert haben, und mir beinahe sogar mein AVR geschrottet hätten, wird da schon in den nächsten Tagen wieder ein Donnerwetter losbrechen. Vielleicht wird der Posten schon unmittelbar nach meiner Prüfung neu besetzt, nur bringt mir das nun herzlich wenig, weil ich da jetzt noch durch muss. Aus eben diesem Grund verzichte ich auf die Hilfe meines Prüfers, und suche anderswo Hilfe. Mein Chef ist in Sachen AVR leider auch nicht fit genug, um mir das Wissen in ausreichendem Umfang vermitteln zuz können. Ganz abgesehen davon, dass es mir alleine zeitlich und finanziell einfach nicht möglich ist, jetzt während meines Urlaubs zur Prüfungsvorbereitung auch noch regelmäßig in die Firma zu kommen. Vor allem auch, weil mein Chef sicherlich andere Dinge um die Ohren hat, als dass er seine ganze Zeit für mich opfern könnte. Solange ich weder Soft- noch Hardware zur Verfügung hatte, konnte ich mich auch nicht in ausreichendem Maße vorbereiten, was mich da erwarten sollte. Und es ist auch nicht so, dass ich mein Projekt völligen Noobs vorstellen soll, sondern dass es so verständlich geschrieben sein soll, dass es jeder verstehen KÖNNTE, der dieses von mir geschriebene Handbuch in die Hand gedrückt bekäme. Daran soll dann gezeigt werden, ob ich die Software selbst verstanden habe. Ein weiterer Teil der Prüfung wird auch darin bestehen, in besagte Software einen Fehler einzubauen, oder aber eine Erweiterung vorzunehmen, und dazu muss ich das Programm schließlich auch kennen. wer mir noch immer vorwerfen will, dass ich nichts dafür mache, der darf sich gerne meine bisherige schriftliche Ausführung dieses Projekts durchlesen. Werde sie einfach mal anhängen. Entweder hilft mir hier jemand, oder ihr lasst es einfach sein. Runterbuttern bringt mich auch nicht weiter, und wenn mir einfach niemand hier helfen will, ist das auch ok, dann werde ich mich anderswo hinwenden und Hilfe suchen. In dieser knappen Zeit, die mir nun noch bleibt, habe ich wahrlich besseres zu tun, als stundenlang Einträge hier ins Forum zu schreiben, nur um zu erklären, warum ich Hilfe suche. Deswegen werde ich wohl nur noch auf ernsthaft gemeinte Ratschläge antworten. Habe von einem Kollegen eigentlich nur gutes über das Forum gehört. Aus eben diesem Grund habe ich hier nach Hilfe gesucht. Beim Beheben der Softwareprobleme hat es ja auch sehr viel geholfen.Aber wenn mir niemand helfen möchte, dann eben nicht. Nichts desto trotz hier nun meine bisherige ausgeführte schriftliche Arbeit über das Programm: lll. Erstellen der Software - Arbeiten mit BASCOM Betrachten wir uns nun die Struktur der Software, mit deren Hilfe wir die Codes unserer Fernbedienungen auslesen und anzeigen lassen können. Bevor wir mit dem Programmieren richtig beginnen können, müssen wir dem Programm zunächst einmal mitteilen, mit welchem Bauteil es denn überhaupt arbeiten soll. So stellen wir sicher, dass keine Missverständnisse in der Kommunikation zwischen unserem Programm und dem AVR auftreten, die zu Fehlfunktionen führen können. Hierzu dient der Befehl $regfile. Da wir auf unserem AVR den Atmega16 verwenden, müssen wir hierbei auf die Datei m16def.dat verweisen. Der korrekte Befehl lautet also $regfile = "m16def.dat" (siehe Zeile 20 in unserem Beispiel). Nun müssen wir noch regeln, wie schnell unser Programm dem AVR Informationen zukommen lassen darf, damit dieses mit dem Ausführen der Anweisungen nachkommt. Diese Geschwindigkeit, die sogenannte "Datenübertragungsrate", nennt man Baudrate. Der Zahlenwert, den man einer Baudrate zuordnet, gibt an, wieviele Informationen in einer Sekunde übertragen werden sollen. Für unser AVR wollen wir uns auf eine Baudrate von 38400 einigen, also in jeder Sekunde 38400 Informationen auf elektronischem Wege an das AVR weiterleiten. Den hierfür zuständigen Befehl finden wir in unserem Programm in Zeile 28: $baud = 38400 Jetzt, wo wir unser AVR mit unserem Programm gewissermaßen miteinander bekanntgemacht haben, können wir uns daran machen, die einzelnen Stationen zuzuweisen, an denen fortan gearbeitet werden soll, und was genau dort jeweils geschehen soll. An dieser Stelle eine kleine Erläuterung. Von außen betrachtet ist unser Atmega16 nichts weiter als ein eckiges schwarzes Bauteil mit vielen Füßchen. Elektronisch betrachtet beinhaltet der Atmega16 mehrere miteinander verbundene Bauelemente. Als Fachbegriff verwendet man für derartig aufgebaute Teile die Abküzung IC - einen "integrated circuit". Diese Bezeichnung ist englisch, und bedeutet wortwörtlich in deutscher Sprache "integrierter Schaltkreis". Eine genauere Beschreibung finden wir im Stichwortverzeichnis, im letzten Teil dieses Handbuchs. Würde man den Deckel dieses IC abnehmen können, und von oben einen Blick hineinwerfen können, so könnte man es durchaus mit einem Handelszentrum vergleichen, welches in unserem Falle in vier Hauptbereiche unterteilt ist, wobei jedes dieser Einzelteile mehrere Anbindungen zur Umgebung hat, aber auch untereinander verknüpft ist. Für diese Einzelteile verwendet man den englischen Begriff Port, was soviel bedeutet wie "Hafen". Letztendlich handelt es sich dabei tatsächlich um nichts anderes: Hier laufen verschiedene "Handelsrouten" zusammen, die zur Bearbeitung jeweils in das zuständige Büro geleitet werden. Diese "Büros" nennen wir also fortan schlichtweg Ports. Jede dieser Handelsrouten benötigt zur eindeutigen Bestimmung eine festgelegte Adresse, eine Art Straßenschild, damit die Waren auch stets am richtigen vorgesehenen Zielort ankommen, oder man nachvollziehen kann, von wo diese herstammen, falls eine Lieferung womöglich fehlerhaft ist. Die Stellen, an denen diese Straßen in unseren Port führen, heißen Pins, und sind für den Betrachter als diese kleinen Füßchen zu sehen, die aus dem Atmega16 herausragen. In unserem Programm tauchen diese Straßenschilder unter dem Begriff Bit auf, und sind der Einfachheit halber lediglich nach ihrer Reihenfolge an ihrem jeweiligen Port aufgeführt - nummeriert von rechts nach links. Diese Ports können allerdings nur jeweils den Verkehr in einer Richtung verwalten, also entweder nur Waren annehmen, oder aber nur abschicken. Diese Richtung aber lässt sich jederzeit auf Wunsch umkehren. Wir sind also nicht dauerhaft auf eine Richtung festgelegt. Wie bei einem Einbahnstraßenprinzip, bei dem wir nach Belieben die Fahrtrichtung umdrehen können. Merke: Die "Straßenschilder", die wir am entsprechenden Bauteil anfassen können, also zur Hardware gehören, heißen also Pins. In der Software, also die schriftliche Zuordnung, die wir nicht anfassen können, sind diese in Form von Bits beschrieben. Jedes Bit entspricht in unserem BASCOM-Programm einer Ziffer 0 oder 1, die in ihrer Reihenfolge von rechts nach links durchnummeriert sind - so können wir ablesen, welches Bit für welche Straße steht. Führen also beispielsweise 8 Wege nach Büro A, so wären diese in BASCOM mit insgesamt 8 Ziffern mit Wert 0 oder 1 hinter Port A auffindbar. Eine 0 bedeutet, dass nur Informationen in den Port A hineingelangen können, also einen Eingang beschreiben, während eine 1 hingegen nur Informationen aus Port A hinausgelangen ließe - ein Ausgang. In Zeile 32 finden wir folgende beiden Anweisungen vor: DDRA = &B0000_0011 PORTA = &B0010_1100 Was auf den ersten Blick vielleicht etwas verwirrend erscheinen mag, ist bei näherer Betrachtung letzten Endes doch recht simpel: "DDRA" steht als Abkürzung für "Datendirektionsregister A". Wer fremdwortbezüglich etwas fit ist, wird auch die Bedeutung dieses Begriff schnell verstanden haben: Ein Datendirektionsregister bezeichnet ein Register, welches die Richtung (englisch "direction" = Richtung) des Datenweges enthält. Mit "&B" vor der Zahlenfolge erklären wir dem Programm, dass die folgenden Zahlenwerte im "Binären Zahlensystem" angegeben werden. Jede Ziffer kann also lediglich zwei Werte annehmen - das sind die beiden bereits erwähnten Werte 0 oder 1. Der Unterstrich zwischen diesen werten dient lediglich der Übersicht. Nachdem wir nun wissen, was die beiden möglichen Werte der Bits bestimmen, sind wir nun in der Lage, den Sinn dieser Zeile zu verstehen: Die ersten beiden Bits ("Straßen") am Datendirektionsregister A haben den Wert 1, sind also Ausgänge (nicht vergessen: Bits werden von rechts nach links gelesen!). Die beiden Den Unterstrich ignorieren wir, und gelangen zu den beiden nächsten Bits, die ebenfalls einen Eingang bestimmen. Lediglich die beiden letzten Bits sind mit dem Wert 1 als Ausgänge festgelegt.
Ich glaube mit jetztigen Ausarbeitung hast du auch die letzen leute die dir Helfen wollen verjagt. ein µC kann man leider nicht einem 4Jährigen kind erklären, weil er einfach zu komplex ist. Du bist gerade mal bei den ersten Zeilen Quellcode und hast schon so viel Text geschrieben, wie viele tausend Seiten willst du denn schreiben wenn du zu den etwas anspruchsvolleren Themen kommst? (IR-Protokoll!). Auf diese art kann man das nicht Art erkären! Ist ja wie einen Tier versuchen würde ein Auto zu erkären.
sorry, habe gerade einen Fehler entdeckt. War noch mitten im Absatz, als ich was abgeändert hatte. Der letzte Absatz lautet also wie folgt: Die ersten beiden Bits ("Straßen") am Datendirektionsregister A haben den Wert 1, sind also Ausgänge (nicht vergessen: Bits werden von rechts nach links gelesen!). Die beiden folgenden Bits sind durch die 0 als Eingang markiert. Den Unterstrich ignorieren wir, und gelangen zu den letzten vier Bits, die ebenfalls einen Eingang bestimmen.
so verlangt es nunmal die Prüfungskommission, da kann ich ja nix für
ok, das Programm ist jetzt soweit betriebsbereit, und die Doku fertiggestellt. Gibt es eine Möglichkeit, das Toggle-Bit des RC5-Codes irgendwie "sichtbar" zu machen? Dass ich es als einzelnen Wert ausgegeben bekomme, und den mit aufs Display geben kann.
Klar, ehe es hier wegmaskiert wird
> Bce = Bce And &B01111111 'filtert ToggleBit heraus.
mit &B10000000 maskieren, speichern und an entsprechender Stelle
ausgeben.
Aber Du weißt schon was ein Togglebit tut,
bei welchen Tasten es benutzt wird und warum ?
Wie oft und wie schnell es auftreten kann ?
cdg
oder einfach nur vor Bce = Bce And &B01111111 if Bce.7 = 1 then 'Togglebit ist gesetzt LCD ...... end if cdg
Das Toggle-Bit wird dem RC5-Signal vorausgesandt, bzw ist das erste übertragene Bit des Signals (nach den start-Bits). Mit jedem neuen Signal wechselt es zwischen 0 und 1. So kann unterschieden werden, ob ne Taste gedrückt gehalten oder eine neue gedrückt wird.
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.