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