Probleme mit AVR Output - Denkanstoß gesucht

Gast #3548953
Lesenswert?

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
Gast #3548969
Lesenswert?

>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.
#3548974
Lesenswert?

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.
Gast #3549015
Lesenswert?

...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...
Gast #3549034
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren