Forum: Compiler & IDEs Anfänger ... erster Versuch ... fehlgeschlagen ;o(


von Andreas K. (Gast)


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

von A.K. (Gast)


Lesenswert?

PINx=input, PORTx=output.

von Werner B. (Gast)


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

von pebisoft (Gast)


Lesenswert?

setze die fusebits unter deiner kontrolle mit ponyprog oder bascom.
mfg pebisoft

von Malte (Gast)


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
;-)

von Andreas K. (Gast)


Lesenswert?

Hallo,

danke, hat funktioniert. Hab einfach nicht genau aufgepasst ;o)

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
Noch kein Account? Hier anmelden.