Hallo Leute, arbeite frisch mit einem 1284P. Soweit läuft alles. Die ISP-Programmierung, das 8-bit-Display, RX/TX....nun wollte ich trivial am Port D eine LED zum Leuchten bringen, aber nichts passiert. Mit dem ganzen Port D passiert nichts. Einige Pins sind auf Masse, andere auf 4,3V (VCC=5V). Und egal was ich programmiere, es ändert sich nichts. Da ich das schon eine Weile mache und die anderen Sachen (Display, RX/TX) problemlos laufen, kann es ja nur Hexerei oder eine Besonderheit des Chips sein. Natürlich ist alles richtig programmiert, es gibt keine Kurzschlüsse/Verbindungen etc. Auch Jtag ist aus. Da das Programm momentan auch nur aus Initialisierung und "toggle Portd.4" besteht, scheiden auch Programmierfehler aus....wer hat eine Idee? Bin für alles offen, danke.
Ich wuerd den Fehler bei Zeile 42 suchen. Er ist oft dort, ist fast schon die Huette, wo der Fehler wohnt.
:
Bearbeitet durch User
Max schrieb: > wer hat eine Idee? Bin für alles offen, danke. Am Programm kann's nicht liegen, das haben wir ja schon analysiert. Also liegt es an der Hardware: Pin 45 muss auf Vcc/2 liegen.
Da natürlich alles richtig programmiert ist und Programmierfehler ausgeschlossen sind: Defektes Bauteil, Hexerei oder jemand hat die Suppe nicht ausgegessen.. Bitte mehr Infos, was ist programmiert, wie sieht die Schaltung aus?
Max schrieb: > ganzen Port D passiert nichts. Einige Pins sind auf Masse, andere auf > 4,3V (VCC=5V). Und egal was ich programmiere, es ändert sich nichts. Das ist schon mal hilfreich, dass du genau beschrieben hast welche Pins auf Masse sind und welche auf Vcc. Max schrieb: > Kurzschlüsse/Verbindungen etc. Auch Jtag ist aus. Sicher ?
1284user schrieb: > Ich wüsste nicht wie man beim 1284 den JTAG über Port D erreicht. Da hast du auch wieder Recht, es ist 1284, mein Fehler.
Man merkt, daß Freitag ist und die Schule aus..und einige Wohl wieder "zu Unrecht" gemobbt wurden und nun ihren Frust im Netz auslassen. Die Schaltung sieht gut aus, alles was angeschlossen werden musst, ist angeschlossen. Das wissen wir, weil ja Display und ISP und RX/TX funktionieren. Pin 45 liegt sogar zweimal auf VCC/2, von beiden Seiten. Wie gesagt, es ist alles richtig angeschlossen. Pind.5 ist zb 4,35V. Pind.4 ist 0. Pind.3 ist auch 0, Pind.2 ist wieder 4,35V
Max schrieb: > Die Schaltung sieht gut aus, Stimmt, die schaut hervorragend aus. Alle machen Fehler, nur du nicht.
Max schrieb: > Pin 45 liegt sogar zweimal auf VCC/2 Seltsam, bei meinem ATmega1284P ist nach Pin 44 Schluß. Und VCC/2 habe ich nirgends auf dem Board.
Peter, laß dich nicht ärgern, die Trolle sind wieder unterwegs.....wenn es keine Besonderheiten beim 1284p was Port D betrifft gibt, muß ich wohl von einem kuriosen Defekt ausgehen.
Max schrieb: > Man merkt, daß Freitag ist und die Schule aus.. Deswegen wohl dein Posting... > Die Schaltung sieht gut aus, alles was angeschlossen werden musst, ist > angeschlossen. Das wissen wir, weil ja Display und ISP und RX/TX > funktionieren. Das kannst du daraus nicht ableiten. ISP liegt ja nicht an PortD und auch das Display liegt wohl nicht an PortD. Und RX/TX (vermutlich gemeint: die von USART0) liegen zwar an PortD, sind aber gerade dadurch gekennzeichnet, dass die normale Funktionalität der Port-Pins 0 und 1 durch die USART "overridden" wird, wenn die USART in Benutzung ist. D.h.: Alles was "wir" zu wissen glauben, ist ein Trugschluss. Allerdings glaube ich auch, dass der Fehler eher bei der Software liegt. Aber die hast du uns ja genauso vorenthalten, wie den Schaltplan... Ich tippe mal darauf, das DDRD einfach nicht korrekt gesetzt wurde, um die Pins zu Ausgängen zu machen. Sei es, weil schlicht die entsprechende Anweisung im Code fehlt oder sei es, weil durch falsche Wahl des Targets die Registerzuordnung nicht passt. In jedem Fall: Krasse Inkompetenz der menschlichen Komponente.
genau, deswegen mein Posting, weil Leute wie du ihren Schulfrust abbauen. Hatte ich schon geschrieben, aber du nicht gelesen..oder begriffen, wobei dann wieder das Argument "Schule" zieht... Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. Da braucht also auch nichts gezeigt werden, auch das hast du nicht begriffen, oder soll ich dir jetzt einen Apfel zeigen, damit du weißt was ein Apfel ist? Dein Tip war, wie auch schon geschrieben, sinnlos, da alles richtig gesetzt worden ist... Du bist nicht einmal in der Lage ein paar einfache Sätze zu lesen und zu verstehen, willst aber einen Schaltplan und Programm-Zeilen haben? Das beißt sich doch, du bist doch schon so überfordert..... Aber in einer Sache hast du Recht: Krasse Inkompetenz der menschlichen Komponente.
Max schrieb: > Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. wie geht das zusammen? Max schrieb: > .nun wollte ich trivial > am Port D eine LED zum Leuchten bringen, aber nichts passiert. entweder Hardware und/oder Software stimmt eben nicht oder es ist ein Mysterium, da kann kein Mensch helfen, beten und/oder weihen wäre eine mögliche Lösung.
:
Bearbeitet durch User
Max schrieb: > Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. Offensichtlich nicht du Spaten! Und jetzt schraub dich mal wieder runter. Du bist es, der hilfe will, und einen dreck dafür tut! Zeig den Schaltplan und den Code oder du kannst dich gehackt legen!
@TO Panik bei der Fehlersuche bringt nichts. Hast Du alle 4 Betriebsspannungsanschlüsse belegt? (11 und 31 sind GND, 10 und 30 sind +UB) Tausche mal die LED an einen anderen Pin von Port D. Das ist doch schnell gemacht, denn Du hast ja Zugriff per ISP-Schnittstelle, wie Du schriebst. MfG Paul
Max schrieb: > Wie gesagt, schon ein paar Mal: Hardware und Software stimmen. Da Dann ist ja alles OK, alles muss laufen, was ist genau dein Problem ?
Hallo Max, ich habe Dir ein Testprogramm geschrieben. Setup: F_CPU = 8000000 Device = atmega1284p Init: * MCUCR.JTD = 1 * DDRA = 0xff, PORTA = 0x55 * DDRB = 0xff, PORTB = 0x55 * DDRD = 0xff, PORTD = 0x00 Der Timer0 liefert ein 125 Hz Zeitsignal und der Wert von Portd wird bei jedem Zeitsignal +1 erhöht. Also 0,1,2,3,...,255, 0,.. Der Timer1 liefert ein 2 Hz Zeitsignal und die Ports PORTA und PORTB wechseln bei jedem Zeitsignal ihre Werte von 0x55 zu (0x55 XOR 0xFF) = 0xAA, usw. Die gesamte Ablaufsteuerung steckt somit in den beiden Timer0 und Timer0 Interrupt Service Routinen. Die Main-Loop ist leer. Bitte berichte.
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.