Hi zusammen, ich habe gerade eine Schaltung auf einer geätzten Platine (die ich auf einer anderen bereits erfolgreich getestet hatte). Ich habe einen Atmega1284 und dabei Probleme mit dem PORTC. Initialisiert habe ich den Port mit: DDRC = 0x7F; PORTC |= (1 << 0) | (1 << 1);// SDA + SCL high Ich habe nun allerdings Probleme das ich die PORTC Pins 2 - 7 nicht auf 1 gesetzt bekomme und keine 5V an den Pins messen kann, und ich habe keine Ahnung warum. PORTC sollte grundsätzlich funktionieren, da über die PINs 0/1 des Ports eine I2C Schnittstelle erfolgreich angesprochen wird. Der gleiche Programmcode an PORTA funktioniert perfekt, daran liegt es also nicht. Ich habe auch schon mein Programm direkt als Testprogramm gemacht mit nur: DDRC = 0x7F; PORTC = 0x00; while (1) { PORTC = 0xff; } und ich kann trotzdem nicht 5V messen. Was kann ich noch testen oder falsch gemacht haben? Ich bin gerade etwas verzweifelt. Wenn ich irgendwie den PORTC geschrottet hätte, dann würde doch auch TWI nicht mehr funktionieren... lg sam
>ich habe gerade eine Schaltung ...
Schön zu wissen. Dann weiss man ja, dass man beim reinschauen in die
Glaskugel nach realen Schaltungen und nicht nach Träumen davon gucken
muss. :-) Muss ich noch deutlicher werden?
Ach, und wenn Du schon dabei bist, poste mal bitte ein paar Fotos vom
Aufbau.
Deine Codephantasien sind ja auch sehr niedlich, aber zeigst Du uns
bitte realen, vollständigen, compilierbaren Code, der das Problem zeigt?
Das wäre furchtbar nett. Ich helfe nämlich so gerne. Vielen Dank im
Voraus.
g457 schrieb: >> PORTC > > JTAG? Ja. Steht in der Top-10-Liste der meistgemachten Fehler ziemlich weit oben. Bitflüsterer schrieb: >>ich habe gerade eine Schaltung ... > > Schön zu wissen. Dann weiss man ja, dass man beim reinschauen in die > Glaskugel nach realen Schaltungen und nicht nach Träumen davon gucken > muss. :-) Muss ich noch deutlicher werden? > > Ach, und wenn Du schon dabei bist, poste mal bitte ein paar Fotos vom > Aufbau. > > Deine Codephantasien sind ja auch sehr niedlich, aber zeigst Du uns > bitte realen, vollständigen, compilierbaren Code, der das Problem zeigt? > > Das wäre furchtbar nett. Ich helfe nämlich so gerne. Vielen Dank im > Voraus. @sam: Schalt die Jtag-Fuse ab und vergiss den Laberheini. mfg.
:
Bearbeitet durch User
HI >JTAG? Betrifft aber nur PC2...Pc5. >DDRC = 0x7F; >PORTC |= (1 << 0) | (1 << 1);// SDA + SCL high Ist für PC0 und PC1 bei aktiviertem TWI unwirksam. MfG Spess
@ Thomas Eckmann
> ... vergiss den Laberheini.
Lustig. Das selbe habe ich auch gerade über Dich gedacht.
Hi, Ahhhh. JTAG war es natürlich. Da hätte ich noch stunden gesucht, weil ich eigentlich die Fuses vor ein paar Tagen gesetzt hatte, dachte ich zumindest. Vielen Dank!!!! lg Samy
...um noch mal vollständig kompilierbaren Code zu posten für Herrn Bitflüsterer füge ich den noch mal an. Ein Foto von der in SMD bestückten Platine und dessen Schaltplan erspare ich mir hier mal, die Glaskugel soll ja nicht arbeitslos werden. #include <avr/io.h> #ifndef F_CPU #define F_CPU 20000000 #endif int main(void) { DDRC = 0x7F; PORTC = 0x00; while (1) { PORTC = 0x7f; } } Aber wie zuvor geschrieben, Problem gelöst durch das vergessene JTAG...
Es bleibt offen, warum Du an Pin 6 keinen High-Pegel hast messen können und nach dem Code aus dem ersten Posting auch, warum Du das an Pin 7 nicht konntest. Nach der Beschreibung konnte es nicht an der JTAG-Fuse liegen. Das schrieb auch Spess schon.
Der Punkt bleibt wirklich offen. Das lag daran, das ich die beiden Pins nicht gemessen hatte.
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.