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.
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.
>> 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.
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?
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
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:> 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
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 ?
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.
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.
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?