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.
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.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten