Anfänger ... erster Versuch ... fehlgeschlagen ;o(

Gast #181842
Lesenswert?
• ▲
▼
Hallo,

habe soeben in einer Nacht- und Nebelaktion mein erstes AVR-Board
aufgebaut und wollte es eigentlich nur noch schnell einmal testen.
Flashen ging laut Anzeige soweit auch eiwandfrei ... nur das Prog läuft
nicht. Ich hoffe es ist ein Fehler meinerseits im Programm und nicht
gleich der erste zerschossende AVR oder eine Schaltung die gar nicht
funktioniert:

#include <avr/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/delay.h>

int main (void)
{

  DDRD=0xff;
  DDRC=0xff;
  while(1)
  {
    PIND=0xff;
    PINC=0xff;
  }

}


As handelt sich um einen ATMega32. An Port C habe ich
interessanterweise an ein paar Pins Spannungen messen können, sonst
leider nichts.

Wo liegt das Problem ? Ist der Code falsch ? Kann der AVR defekt sein ?
wäre es möglich, dass die Schaltung gar nicht funktioniert (z.B. kein
Takt) oder ähnliches ?

Ach und noch etwas - ab wann läuft das aufgespielte Programm eigentlich
? Gleich nach dem flashen oder nach dem Aus- und wieder Einstöpseln ?

MfG
Gast #181844
Lesenswert?
• ▲
▼
PORTC hat ein paar pins für JTAG reserviert.

zu ausschalten Fuses entsprechend programmieren, oder zur laufzeit..

// Disable JTag Interface in case of ATmega32 (or FUSE disabled - just
in case)
#if defined (_AVR_ATmega32_)
    unsigned char sreg = SREG;
    cli();
    // Zweimal innerhalb von 4 Taktzyklen schreiben
    MCUCSR |= (1<<JTD);
    MCUCSR |= (1<<JTD);
    SREG = sreg;
#endif
Gast #181846
Lesenswert?
• ▲
▼
Auch wenn der Fehler in deinem Programm schon oben genannt wurde, nur
mal zur Info:
Das Programm läuft, sobald der Reset Pin auf high gesetzt wird. Manche
Programmer machen dies direkt nach dem Flashen und manche nicht.
Wenn du keinen Takt hättest würde der Programmer den Chip garnicht erst
erkennen.
Solange der Programmer noch den Chip erkennt ist nicht alles verloren
;-)

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