In Form eines Schulprojektes möchte ich dieses LCD-Display programmieren. Zum Ein- und Ausschalten habe ich einen Taster verbaut, welcher an PC4 und PC5 liegt. Nachdem ich einen dieser Ports als Ausgang festgelegt habe und diesen aktiviert habe, möchte ich nun den anderen Port als Eingang nutzen. Jedoch funktioniert dies nicht so wie gewollt. Ich programmiere in Assembler und nachdem ich die DDR des ATMega8 eingestellt habe, funktioniert die gewollte Funktion nicht. Mit Pull-Up und Pull-Down Funktionen kenne ich mich nicht so gut aus. Es wäre super, wenn mir da jemand helfen könnte.
Setze im Quellcode den richtigen Befehl. Hilft dir der Hinweis nicht? Ich sehe deinen Quelltext nicht und kann dir nicht bei der Fehlersuche helfen.
Niklas Weiblen schrieb: > Mit Pull-Up > und Pull-Down Funktionen kenne ich mich nicht so gut aus. Dann solltest du das lernen! Dazu gibts genug im Internet. PS: 2 Pins für einen Taster? Machbar, aber voll unnötig.
Niklas Weiblen schrieb: > Pull-Up und Pull-Down Funktionen was soll das sein? Was verstehst Du darunter und was hat dein µC damit zu tun?
>> Pull-Up und Pull-Down Funktionen > was soll das sein? > Was verstehst Du darunter und was hat dein µC damit zu tun? Bist Du sicher, daß Du hier helfen kannst? > Dann solltest du das lernen! > Dazu gibts genug im Internet. ZONK!! Wieso schreibst Du überhaupt wenn Du sowieso keine Lust hast, ihm zu helfen? Ey nee... ist wohl wieder Freitag heute.
Ben B. schrieb: >>> Pull-Up und Pull-Down Funktionen >> was soll das sein? >> Was verstehst Du darunter und was hat dein µC damit zu tun? > Bist Du sicher, daß Du hier helfen kannst? > >> Dann solltest du das lernen! >> Dazu gibts genug im Internet. > ZONK!! Wieso schreibst Du überhaupt wenn Du > sowieso keine Lust hast, ihm zu helfen? > > Ey nee... ist wohl wieder Freitag heute. Wenn hier einer NICHTS konstruktives beigetragen hat, außer Streit zu schüren, Zwietracht zu sähen, dann bist ja wohl du das. Damit der gehört der heute FreitagsVogelAbschuss eindeutig dir.
Ben B. schrieb: > Arduino Fanboy D. schrieb: >> Dann solltest du das lernen! >> Dazu gibts genug im Internet. > ZONK!! Wieso schreibst Du überhaupt wenn Du > sowieso keine Lust hast, ihm zu helfen? Das hätte ich als erstes auch gesagt und muss Arduino Fanboy voll zustimmen. Schulprojekt; was lernen oder vorkauen? Zumindest damit könnte er mal anfangen, auch wenn es aus dem GCC-Tutorial ist: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Taster_und_Schalter
Wenn hier jemand ankommt und um Hilfe bittet und ihr blafft den nur an mit sinnbildlich "Such Dir den Scheiß doch gefälligst im Internet zusammen und nerv uns nicht weiter damit!" dann ist das einfach asozial. Dann braucht niemand dieses Forum, kann man es bitte komplett löschen wenn man sowieso nur ans Internet verwiesen wird?
Beitrag #6080915 wurde von einem Moderator gelöscht.
Beitrag #6080926 wurde von einem Moderator gelöscht.
Damit es auch Ben B. gefällt, versuche ich es einmal in höflich: ------------------------------------------------------- Werter Niklas Weiblen, es freut mich, daß du mit deiner Suche im Forum gelandet bist und heiße dich recht herzlich willkommen. Leider kann deine Frage im Moment nicht erschöpfend beantwortet werden, da leider dein vorhandenes Programm nicht mitveröffentlicht wird. Auch wäre es hilfreich, deinen Schaltplan mit anzugeben. MfG von der Spree Frank ------------------------------------------------------- oder wie bereits geschrieben: Ben B. schrieb: > Schaltplan? Programm? Geheimsache?
Mein Gott... Sobald jemand Schulprojekt hier schreibt wird direkt gefragt ob man lernen will oder alles vorgekaut haben möchte. Wie gut, dass man früher noch seine Eltern fragen konnte bei Hausaufgaben. Heute wird man direkt an das Internet verwiesen mit der Bitte selber zu lernen.
Achherrjeh schrieb: > Wie gut, dass man früher noch seine Eltern fragen konnte bei > Hausaufgaben. Bei meinen jugendlichen Basteleien habe ich auch nicht meine Eltern gefragt, sondern mich stunden-, tage und wochenlang durch die spärlich vorhandene Literatur gearbeitet. Und das bedeutete eben auch, zu verschiedenen Bibliotheken zu fahren. Ich sage damit nicht, dass die heutige Jugend auch stundenlang herumreisen muss, in der Hoffnung, in der jeweiligen Bibliothek interessante Literatur zu finden, sondern dies kann natürlich auch per Internetrecherche erfolgen. Wer aber nicht bereit ist, so etwas eigeninitiativ zu leisten, hat eben Pech gehabt.
Andreas S. schrieb: > Bei meinen jugendlichen Basteleien habe ich auch nicht meine Eltern > gefragt, sondern mich stunden-, tage und wochenlang durch die spärlich > vorhandene Literatur gearbeitet. Ich auch, weil die von Strom keinerlei Ahnung hatten. Offen bleibt, ob Niklas in der Schule am Handy gedaddelt hat anstatt aufzupassen, Taster am Port sind doch absolute Basisdinge. Egal, ich versuche mal, konstruktiv zu sein: Niklas Weiblen schrieb: > habe ich einen Taster verbaut Ich male Dir jetzt ein Bildchen, wie man es üblicherweise macht. Meistens die linke Variante, Taster nach Masse (Gnd). Den Pullup-Widerstand kann man sich sparen, wenn man den Eingang des ATMega passend konfiguriert, Pullups sind da nämlich integriert. Wie Du dafür das Portregister setzen musst, erarbeitest Du Dir bitte selbst. Möchte man den internen Pullup nicht verwenden, lötet man den Widerstand vom Taster nach Plus eben ein, über den Daumen 1..10 kOhm. Wenn ich an meine ersten Gehversuche mit 6502 in Assembler denke: Ich habe einen Schalter an einen Port geklemmt und an einen anderen Port eine LED. Dazu ein Programm, was nichts weiter tat, als den Schalter abzufragen und die LED zu steuern. Das solltest auch Du tun, Zerlegung in überschaubare Brocken und Grundfunktionen verstehen.
Na der 6502 ist 35 Jahre her, der hat mit heutigen µCs nicht mehr viel zu tun. Der hatte z.B. keinen internen Programmspeicher, der brauchte noch etwas ROM, RAM und zugehörige Adresslogik, damit er überhaupt funktioniert.
Ben B. schrieb: > Na der 6502 ist 35 Jahre her, der hat mit heutigen µCs nicht mehr viel > zu tun. Na und, das ändertr nichts an der Richtigkeit der vorausgegangen Aussage. Ansonsten gibt es außer Dir hier bestimmt jede Menge Graubärte die seinerzeit diese 8048-, 6502-, Z80-CPUsa programmiert haben. Mußt Du nicht mit rum prahlen.
Ben B. schrieb: > Na der 6502 ist 35 Jahre her, der hat mit heutigen µCs nicht mehr > viel > zu tun. Der hatte z.B. keinen internen Programmspeicher, der brauchte > noch etwas ROM, RAM und zugehörige Adresslogik, damit er überhaupt > funktioniert. Du hast natürlich recht, der steckt auf einer Eurokarte mit externen Portbausteinen, RAM, EEPROM, Resetbaustein ... und es ist lange her. Mein erster Mikrocontroller mit allem drin hieß dann Jahre später 68HC805. Das ändert aber absolut garnichts an der prinzipiellen Vorgehensweise: Ich programmiere einfache Teilaufgaben wie z.B. Abfrage eines Ports, LED blinken lassen etc. und verschaffe mir damit funktionierende Progrämmchen, auf die ich später wieder zugreifen kann. Da ich für mich keine Notwendigkeit für ASM sehe, setze ich den AT328 als Arduino ein. Mit dem habe ich vor ein paar Jahren genau das gleiche gemacht: Taster, LEDs, Poti und Display dran und ein paar Tage Grundfunktionen bespielt, bevor ich mein echtes Projekt begonnen habe.
Ich bin zu jung um mit dem 6502 herumgespielt zu haben. Ich war froh, daß das 6510-Derivat in meinem C64 funktionierte und habe später irgendwann aus Spaß einen Minirechner mit einem 8086 zusammengebaut (der ähnliche Anforderungen hat wie der 6502). Aber praktisch eingesetzt kamen gleichen µCs, keine CPU-Minimalsysteme mehr.
Ben B. schrieb: > Ich bin zu jung um mit dem 6502 herumgespielt zu haben. Ich habe 1987 eine 6502-Karte von Hand layoutet, die dann in Prüfmitteln eigesetzt wurde. Ich wurde viele Jahre gut dafür bezahlt, jeden Tag zu basteln :-) Aber: Jung oder Prozessortyp sind zweitrangig, ich wollte eine grundlegende Arbeitsweise darstellen, sind wir uns zumindest da halbwegs einig? Auch Du wirst nicht auf Anhieb eine komplexe Anwendung geschrieben haben, sondern Dich erstmal mit überschaubaren Sachen befasst haben. > Aber praktisch eingesetzt kamen gleichen µCs, > keine CPU-Minimalsysteme mehr. Dazu kam ich erst später, und wurde dann leider von der Hardware entfernt. Beruflich hat mir das den A* gerettet, so dass ich Hardware schon lange nur noch privat mache.
Puh. Ich weiß ehrlich nicht mehr, was mein erstes Projekt mit einem µC war und wie komplex das war. Es war mehr als eine blinkende LED (wobei alle meine Projekte eine Status-LED am µC bekommen wenn ich einen Pin dafür frei habe). Ich glaube das war gleich "was mit Display" und RS232-Kommunikation, wobei ich das nicht jedem Anfänger empfehlen würde. Wenn ich nicht schon vorher ein Verständnis gehabt hätte, wie Daten(transfer) elektrisch aussehen, hätte ich das nie hinbekommen. Ich weiß noch, daß ich damit viel mit dem ADC rumgespielt habe, was für Mist man damit alles so messen und an den PC schicken kann. Meinen ersten Kontakt mit µCs hatte ich mit PIC-Controllern, nachdem ich so ein "komisches Ding" in einer Akku-Notleuchte für Treppenhäuser gefunden habe und mir nicht gleich erklären konnte, was dieser IC da drin macht. Ich hatte nicht so viel Intelligenz in einer Akku-Leuchte erwartet, ein paar einfache Transistoren mit Hühnerfutter hätten es auch getan. Folglich hab ich angefangen mit den PICs zu basteln, bis ich auf die AVRs gestoßen bin - und gemerkt habe, wie schlecht der Befehlssatz der PICs ist. Ich glaube das erste AVR-Projekt war das AN910, integriert auf ein Test-Board für die AVRs und dann ein ähnlicher Weg mit Display dran, RS232->PC dran, ADC-Spielereien... diverse Zeitschalter oder programmierbare RGB-LED-Driver, Steuerungen von Netzteilen, Ladegeräte, Alarmanlagen, Mini-SPS für sowas wie Torsteuerungen... würde behaupten es gibt sehr wenig, was ich damit nicht hinkriege. Was ich bis heute so klasse an diesen µCs finde - im Vergleich zu CPU-Systemen - du bekommst einen einzelnen Schaltkreis in beliebiger Baugröße, 5V dran und dir stehen out-of-the-box 4..20 MIPS Rechenleistung zur Verfügung. Was die Dinger dann noch in Hardware können, wenn ich daran zurückdenke wie lange ich für den RS-232 Bootloader in dem Mini-8086 gebraucht habe (der war im ROM abgelegt und hat nichts weiter gemacht als ein Programm vom PC in das RAM zu kopieren und zu starten) und wie einfach sowas mit einem AVR ist...
Zunächst möchte ich mich bei den vielen Antworten in der kurzen Zeit bedanken. Ich möchte meine flüchtig geschriebene Frage ändern und mich bezüglich des Pull-Ups deutlicher ausdrücken. Ich bin mir der Funktion des Widerstandes bewusst. Jedoch weiß ich nicht, warum er in meinem Programm nicht funktioniert. Dahingehend bin ich kein Schüler der am Handy daddelt, zudem ich gar keine Zeit dazu habe, nicht aufzupassen :D . Finde es ein wenig schade, dass jeder hier so negativ von Schülern denkt. Um es zu verdeutlichen hänge ich einen Schaltplan und einen Teil meines Testcodes an. Den internen Pullup, habe ich nach meinem Verständnis eingestellt (DDRC = 0 und PORTC auf 1. Außerdem bin ich auch im Klaren, dass es eine sinnlose Verdrahtung ist, jedoch werden die Ports nicht benötigt und es wurde so erfordert. In der Hoffnung es dieses Mal richtig erklärt und verdeutlicht zu haben Niklas
OK...Blöd wenn die Katze vorzeitig auf Enter drückt ;D Ich meine natürlich:
1 | SBI PORTC,4 |
So jetzt aber
Je nach Netzteil und Schleiferstellung von P1 brennt entweder das Poti ab oder die Versorgungsspannung geht in die Knie. Und der LCD-Kontrast lässt sich damit auch nicht einstellen.
Andreas S. schrieb: > Und der LCD-Kontrast > lässt sich damit auch nicht einstellen. zumindest bekommt man den Kontrast evtl. auf Null bevor das Poti abgebrannt ist. Besser https://www.mikrocontroller.net/attachment/187720/sch.png
:
Bearbeitet durch User
Joachim B. schrieb: > zumindest bekommt man den Kontrast evtl. auf Null bevor das Poti > abgebrannt ist. Funktioniert aber optimal
Hallo, deine Tasterschaltung macht keinen Sinn. Taster zwischen GND und einen Pin, nicht zwei, verschalten und Pullup aktivieren. Fertig.
:
Bearbeitet durch User
Niklas Weiblen schrieb: > Funktioniert aber optimal Dann entspricht Dein Schaltplan nicht der tatsächlichen Schaltung.
Andreas S. schrieb: > Dann entspricht Dein Schaltplan nicht der tatsächlichen Schaltung. Genau so ist es aber verdrahtet...Aus diesem Grund ist auch der D2 ein Ausgang... Veit D. schrieb: > deine Tasterschaltung macht keinen Sinn. > Taster zwischen GND und einen Pin, nicht zwei, verschalten und Pullup > aktivieren. Fertig. Und wie auch in meinem letzten Post erwähnt: Niklas Weiblen schrieb: > Außerdem bin ich auch im Klaren, dass es eine sinnlose Verdrahtung ist, > jedoch werden die Ports nicht benötigt und es wurde so erfordert.
Auch wenn es eigentlich nicht das Thema ist, dass ist meine Verdrahtung für die Kontrastspannung. Wenn etwas an meinem Schaltplan falsch sein sollte, dann hat dies jedoch nichts mit der genannten Problematik des Tasters zu tun.
Niklas schrieb: > Auch wenn es eigentlich nicht das Thema ist, dass ist meine Verdrahtung > für die Kontrastspannung. Die Verdrahtung entspricht nicht dem Schaltplan. > Wenn etwas an meinem Schaltplan falsch sein sollte, dann hat dies jedoch > nichts mit der genannten Problematik des Tasters zu tun. Wenn schon der Schaltplan von Fehlern so strotzt, nützt er auch nichts.
Probiere mal die Pinbelegung des Taster aus, ob der wirklich schaltet. Das kannst du leicht mit einem Multimeter machen, welches Widerstände messen kann. Alternativ kannst du auch eine LED an den Port C5 und C4 hängen und gucken was passiert. Vorwiderstand für die LED nicht vergessen. P.S. die ganzen alten Trolle hier bei Mikrocontroller.net können einem ganz schön auf den Keks gehen.
Wie der Name schon sagt.... schrieb: > Ein Taster niemals schalten kann! Das ist der bisher dümmste Post in diesem Thread. Was tut er dann? Tasten? Georg
Hi, Auslesen vom Busy-Flag machst Du wohl erst einmal nicht, nehme ich an. Dafür müsstest Du nämlich R/W extra herausführen und zwischen H und L wechseln. R/W ständig auf GND setzen, also Leistenkontakt 15. Reicht für Ausgabe-Test völlig. OT SCNR Wieder jemand der im Vierbit-Modus D0 bis D3 auf GND beschaltet. Wir hatten uns mit absoluter Mehrheit doch am Ende der jahrelangen Diskussion dazu nach Hauen und Stechen schlussendlich dazu entschlossen, diese Pins nicht zu beschalten. /OT Die Tastenfunktionen mit SBIS und Pollingschleife setzen vorraus, dass der dezidierte Port "festgenagelt" wird. Wie willst Du aus dieser Pollingschleife rauskommen? stop: rjmp stop Programm läuft einmal durch und dann FIN Niklas Weiblen schrieb: > Nachdem ich einen dieser Ports als Ausgang > festgelegt habe und diesen aktiviert habe, möchte ich nun den anderen > Port als Eingang nutzen. Jedoch funktioniert dies nicht so wie gewollt. ciao gustav P.S. vor no list und list fehlt ein Punkt. sorry
:
Bearbeitet durch User
Karl B. schrieb: > Auslesen vom Busy-Flag machst Du wohl erst einmal nicht, nehme ich an. Ist in Planung, aber erst vorher wird sich noch an den Taster hergemacht. Karl B. schrieb: > Wieder jemand der im Vierbit-Modus D0 bis D3 auf GND beschaltet. > Wir hatten uns mit absoluter Mehrheit doch am Ende der jahrelangen > Diskussion dazu nach Hauen und Stechen schlussendlich dazu entschlossen, > diese Pins nicht zu beschalten. Das hier ist mein erster Thread. Habe nicht allzu viele elektrotechnische Kenntnisse und weiß demnach nicht, warum diese Verdrahtung ein Nachteil ist. Kann die Leiterbahnen aber natürlich noch auftrennen. Karl B. schrieb: > Wie willst Du aus dieser Pollingschleife rauskommen? Weiß ich selbst noch nicht... Bin momentan mitten im dualen Informatikstudium und kann mich gerade nur langsam an bestimmte Dinge herantasten, da auch andere Sachen anfallen. Wie der Name schon sagt.... schrieb: > Schalten tut der Schalter! > > Ein Taster niemals schalten kann! Bitte was? Hab ich irgendwas verpasst ;D ?
Wenn denn ein Taster schalten täte, dann braeuchte man keine Schalter mehr. Ist rein logisch gedacht...
Wenn denn ein Taster schalten täte, dann braeuchte man keine Schalter mehr. Ist reine Logik.
Niklas Weiblen schrieb: > Mit Pull-Up > und Pull-Down Funktionen kenne ich mich nicht so gut aus. Ein MOSFET (µC-Eingänge sind MOSFETs) ist spannungsgesteuert, d.h. man muß eine Spannung anlegen. Ansonsten bleibt seine Eingangskapazität auf die letzte angelegte Spannung geladen. Um nun einen offenen Eingang (nicht betätigt) erkennen zu können, muß man den Pullup einschalten, um den MOSFET auf High umzuladen. Logischer Weise muß dann die gedrückte Taste gegen GND schließen, d.h. sie lädt den MOSFET auf Low um. losgelassen = 1 gedrückt = 0
Karl B. schrieb: > Wieder jemand der im Vierbit-Modus D0 bis D3 auf GND beschaltet. > Wir hatten uns mit absoluter Mehrheit doch am Ende der jahrelangen > Diskussion dazu nach Hauen und Stechen schlussendlich dazu entschlossen, > diese Pins nicht zu beschalten. Das ist aber kein Zwang. Solange RW fest auf GND liegt, ist es dem LCD völlig schnurz. Man kann sie offen lassen, typisch ist ein Pullup von 10..120µA dran. Bei Batteriebetrieb ist also GND nicht so dolle.
Das Hauptproblem in deinem Code ist, das Du nicht PINC ausliest sondern nur dessen Adresse. ;I Hauptprogramm main: LDI r16, PINC ändere das auf: ;I Hauptprogramm main: in r16, PINC Dann sollte das funktionieren, auch mit deiner "Suboptimalen" Tastenverschaltung...
Ich wollte doch nur Infos zu meinem Taster... Ich weiß, wie Pullup funktioniert. Peter D. schrieb: > Ein MOSFET (µC-Eingänge sind MOSFETs) ist spannungsgesteuert, d.h. man > muß eine Spannung anlegen. Ansonsten bleibt seine Eingangskapazität auf > die letzte angelegte Spannung geladen. > Um nun einen offenen Eingang (nicht betätigt) erkennen zu können, muß > man den Pullup einschalten, um den MOSFET auf High umzuladen. Logischer > Weise muß dann die gedrückte Taste gegen GND schließen, d.h. sie lädt > den MOSFET auf Low um. > losgelassen = 1 > gedrückt = 0
Niklas Weiblen schrieb: > Mit Pull-Up > und Pull-Down Funktionen kenne ich mich nicht so gut aus. Niklas schrieb: > Ich weiß, wie Pullup > funktioniert. was denn nun? Niklas Weiblen schrieb: > ATMega8 hat doch nur pullup und wie man die einschaltet steht doch im Datenblatt Niklas schrieb: > Ich wollte doch nur Infos zu meinem Taster... den du bis jetzt noch nicht mal benannt hast! also DDR Bit vom Taster auf input, PORT bit vom Taster auf high. Da ein Taster 2 Anschlüsse hat muss halt einer der Beiden fest auf GND, der andere Port liest dann halt wenn der Taster gedrückt low liefert! Dann kannst du eine Entprellung vorsehen https://www.mikrocontroller.net/articles/Entprellung
Ich hab ja mich später ja auch erklärt. Ich weiß wie eine Pull-Up Funktion aussieht und wie diese einzustellen ist. Meine Frage galt jedoch der Umsetzung, da es möglich sein müsste, den Taster an PC4 und PC5 anzuschließen und diese dann abzufragen. Aus einem bestimmten Grund funktioniert dies jedoch nicht.
Niklas schrieb: > Ich wollte doch nur Infos zu meinem Taster... Ich weiß, wie Pullup > funktioniert. Das glaubt außer Dir niemand. Schreibe ein einfaches kurzes Programm, welches nur den Taster ausliest und eine LED schaltet. In Anbetracht der nahenden Festtage wäre es auch denkbar, dass Du Dich mit Lebkuchen und Gänsebraten befasst und Mikrocontroller den Leuten überlässt, die sich ernsthaft damit befassen wollen.
Niklas schrieb: > Aus einem bestimmten Grund > funktioniert dies jedoch nicht. Den hab ich dir doch genannt... nicht LDI sondern IN benutzen.
Energieverheizer schrieb: > Den hab ich dir doch genannt... > > nicht LDI sondern IN benutzen. Tut mir leid, hab ich wohl überlesen. Oh man...Wenn es mal nicht das erste mal gewesen wäre, dass ich das verwechsele. Ich danke dir, jetzt funktioniert es einwandfrei. Ich möchte mich auch bei den Anderen bedanken, die mir nicht vorwerfen, faul zu sein oder am Handy rumzudaddeln. Manfred schrieb: > In Anbetracht der nahenden Festtage wäre es auch denkbar, dass Du Dich > mit Lebkuchen und Gänsebraten befasst und Mikrocontroller den Leuten > überlässt, die sich ernsthaft damit befassen wollen. Geschriebenen Code wollte ich auch nicht haben, da ich mein kleines Testprogramm ja schon habe. Mir ging es um das Verständnis, warum es nicht funktioniert. Schade, dass du so von mir denkst, da ich sehr gerne Informatik studiere und auch beruflich ausübe. Schade jedoch, dass hier gleich fast jeder so negativ denkt, wenn ein Anfänger in Assembler nicht gleich die Kenntnisse besitzt, die hier so im Grundniveau des Forums herrschen. Da ich Assembler erst seit 2 Wochen effektiv mache, ist es wohl nicht zu erwarten, gleich alle Fehlerquellen zu finden und alles von Expertensicht aus zu bewerten. Sonst habe ich das Prinzip eines Forums nicht verstanden. Ich wünsche dennoch alle Frohe Weihnachtstage und ein schönes Fest (hoffentlich inklusive Lebkuchen und Gänsebraten ;D)
Manfred schrieb: > Das glaubt außer Dir niemand. Lag ja nun aber nicht daran. Pull-Up war also richtig von mir programmiert. Ich glaube wirklich, dass ich Pull-Up verstanden habe.
Niklas schrieb: > Schade jedoch, dass hier gleich fast jeder so negativ denkt, wenn ein > Anfänger in Assembler nicht gleich die Kenntnisse besitzt, die hier so > im Grundniveau des Forums herrschen. Hi Niklas, gräm Dich nicht. Freu Dich lieber, wie sich einige Wichtigtuer hier über zwei Tage blamiert haben. Erst Energieverheizer hat die ganz einfache Lösung gezeigt... Ich denke, daß sich hier einige schämen dürften, und falls nicht ist ihnen nicht zu helfen...
Auf der Platine sind doch zwei Taster. Warum nimmst du die nicht? Zumindest das Anschlußchema übernehmen. Für einen Taster zwei PIN verschwenden, habe ich noch nie gesehen. Woher hast du das?
Genau, wichtig ist, daß Du es hinbekommen hast. Immer dran denken: Assembler ist cool. Vieles geht mit Hochsprachen schneller und einfacher (vor allem am Anfang), aber ich mag es auch lieber, wenn ich die volle Kontroller über den Chip habe und ihm genau sagen kann was er machen soll. Gewöhn Dir bei Assembler an, viele Dinge in Funktionen zu machen. Die kannst Du dann später immer wieder verwenden (Dir quasi Deine eigene kleine Codesammlung erstellen) und das Hauptprogramm wird wesentlich übersichtlicher. Lerne was der Stack ist und was Interrupts sind. Der AVR kommt in diesen Belangen sehr nahe an frühe x86er heran, sehr cool. Noch ein kleiner Rat, den ich mir aus der Anfangszeit erhalten habe: Wenn Du am Controller noch einen Pin frei hast, häng da eine kleine low-current-LED dran. Die brauchst Du später nicht mehr benutzen bzw. sollte es zu einer Serienfertigung kommen fliegt die raus bzw. wird nicht mehr bestückt, aber in der Entwicklung ist es sehr praktisch wenn man an bestimmten Stellen im Code sowas einfügen kann wie sinnbildlich "mach mal die LED an wenn Du hier bist". Damit lassen sich viele Fehler eingrenzen.
michael_ schrieb: > Auf der Platine sind doch zwei Taster. > Warum nimmst du die nicht? Zumindest das Anschlußchema übernehmen. Wie schon ein paar mal erwähnt, wurde dies so erfordert. Ben B. schrieb: > Noch ein kleiner Rat, den ich mir aus der Anfangszeit erhalten habe: > Wenn Du am Controller noch einen Pin frei hast, häng da eine kleine > low-current-LED dran Habe eine von den bereits verlöteten LEDs genau dafür immer dran. Hab den Draht nur abgemacht, damit niemand verwirrt ist, warum die LED da dran ist
michael_ schrieb: > Für einen Taster zwei PIN verschwenden, habe ich noch nie gesehen. > Woher hast du das? Wie du siehst, hab ich auf der Leiterplatte eh kaum Platz mehr. Das Board dient in dem Fall ausschließlich der LCD. Deswegen ist das aus Minimalismus wahrscheinlich so gewählt worden als Aufgabe
Ben B. schrieb: > Meinen ersten Kontakt mit µCs hatte ich mit PIC-Controllern Könnte ja sehr lang her sein, der PIC kam 1975 raus, noch vor dem 8051. Damals noch maskenprogrammiert.
Niklas schrieb: > Das > Board dient in dem Fall ausschließlich der LCD. Hi, nachdem ich drei LCDs verheizt hatte (!) habe ich mir angewöhnt, der Hardware mehr Aufmerksamkeit zu schenken. Die meisten Fehler passieren beim Anschluss. Lass mich raten, die nächste Frage kommt bestimmt: "Mein LCD zeigt nur schwarze Balken." Da gibt es eben nichts dran zu rütteln. Wenn das Ding sauber initialisiert wird, klappt es ja. Aber bis das soweit ist, ist es oft ein steiniger Weg. Und die Oberschlaumeierroutinen - auch in ASM - sind, ohne dass man es zunächst merkt, meistens auf den Spezialfall zugeschnitten und keineswegs immer verallgemeinerbar. Das habe ich auch erst lernen müssen, woauf es ankommt und wo Verwechslungen auftreten können, wo Fallstricke lauern. Jetzt hat sich bei mir hier im Laufe der letzten Jahre eine kleine Programmsammlung, wo ich auch weiß, warum ich was wie gemacht habe, gebildet. Die Widerstände R1 bis R4 zum Beispiel erregten grenzenlose Empörung. OK. Wenn ich rumbastele und noch nicht weiß, in welchem Modus das LCD arbeiten soll, wie denn, wenn die sonst aus Antistatikgründen aufgestellte Behauptung gilt, kein Anschluss ohne irgendeinen Abschluss. Und gesetzt den Fall, jetzt wird in den Lesemodus umgeschaltet, weil die Software einen Fehler hat. Bumms. Dann habe ich einen satten Kurzschluss an den Ports, den es zumindest mit den Widerständen als Strombegrenzung zu vermeiden gilt. Diese Überlegung ist doch vom Prinzip her nicht zu verteufeln. Gut, wir hatten uns darauf geeinigt, diese Anschlüsse offenzulassen. Aber Maßnahmen zur Verhinderung punktueller statischer Entladung sollten nach dem Auspacken aus der Antistatiktüte und vor endgültiger Verdrahtung doch angeraten sein. ciao gustav Die Sache mit dem IN statt LDI hatte ich schon im Hinterkopf, aber noch nicht spruchreif, da noch andere Dinge nicht ganz so sauber. Das erinnert mich an das Stichwort Memory Mapped. Und eher an die Konfiguration der Timerregister etc.
:
Bearbeitet durch User
Niklas schrieb: > michael_ schrieb: >> Auf der Platine sind doch zwei Taster. >> Warum nimmst du die nicht? Zumindest das Anschlußchema übernehmen. > > Wie schon ein paar mal erwähnt, wurde dies so erfordert. Achso, eine Schulaufgabe. Das Anschlußchema der Taster hast du garantiert nicht übernommen. Wenn der Lehrer den Taster mit zwei PIN gefordert hat, Wenn wir schon mal dabei sind, es soll sicher die LCD-Zusatzplatine zu dem myAVR sein. http://shop.myavr.de/Hardware%20-%20Baus%C3%A4tze/myAVR%20Board%20light%20PLUS,%20Bausatz.htm?sp=article.sp.php&artID=200085 Ich sehe aber im Schaltplan keinen Taster, der so angeschlossen ist. Was macht denn das .hex Testprogramm?
Wie der Name schon sagt.... schrieb: > Wenn denn ein Taster schalten täte, dann braeuchte man keine Schalter > mehr. Ist rein logisch gedacht... Und wenn man "täte" mit ä schreiben kann, bräuchte man "braeuchte" nicht mit ae zu schreiben. Hast du sonst keine Probleme?
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.