Forum: Mikrocontroller und Digitale Elektronik avrdude.exe führt aus, aber das programm läuft nicht


von M. S. (ekkie)


Lesenswert?

Hallo,

ich wollte meine Porgammieren des Atmega328P-PU mit Atmel Studio 7 
vornehmen, damit ich die Programmierung in C vornehmen kann.

da ich von ehajo.de den AVR-ISP-Stick benutze habe ich unter 
<tools/external tools> diesen definiert mit folgenden Parametern:
1
Title:ehajo-isp
2
Command: C:\WinAVR-20100110\bin\avrdude.exe
3
Arguments: avrdude -c  ehajo-isp -P usb -p m328p -B200 -Uflash:w:$(ProjectDir)Debug\$(TargetName).hex:i

Unter <tools/Options/toolchain> habe ich, da ich mit WinAVR arbeite, 
folgendes definiert:
1
toolchains: Atmel AVR 32-bit (C Language)
"Add flavor"
1
Package Name: WinAVR
2
Package Base path: C:\WinAVR-20100110\bin

diesen habe ich auch als "default" gesetzt.

Nun bekomme ich wenn ich neues Projekt starte folgende Kommentare in 
mein Skript:
1
/**
2
 * \file
3
 *
4
 * \brief Empty user application template
5
 *
6
 */
7
8
/**
9
 * \mainpage User Application template doxygen documentation
10
 *
11
 * \par Empty user application template
12
 *
13
 * Bare minimum empty user application template
14
 *
15
 * \par Content
16
 *
17
 * -# Include the ASF header files (through asf.h)
18
 * -# "Insert system clock initialization code here" comment
19
 * -# Minimal main function that starts with a call to board_init()
20
 * -# "Insert application code here" comment
21
 *
22
 */
23
24
/*
25
 * Include header files for all drivers that have been imported from
26
 * Atmel Software Framework (ASF).
27
 *
28
 */
29
#include <asf.h>
30
31
int main (void)
32
{
33
  /* Insert system clock initialization code here (sysclk_init()). */
34
35
  board_init();
36
37
  /* Insert application code here, after the board has been initialized. */
38
}

Wenn ich mein Programm (Blinkschaltung) hochladen möchte unter 
<tools/ehajo-isp> passiert garnichts außer, dass das die Konsole von 
avrdude.exe aufgeht und er das Programm wohl geflashed hätte.
1
#include <asf.h>
2
3
int main (void) {
4
5
  DDRB |= (1 << PC5);       // damit ist dann PB0 ein Ausgang
6
7
  while(1){
8
         PORTB |= (1 << PB0);  //PB0 im PORTB setzen
9
        _delay_ms(250);       //250ms warten
10
11
        PORTB &= ~(1 << PB0); //PB0 im PORTB löschen
12
        _delay_ms(250);       //250ms warten
13
14
  }
15
16
  return 0;
17
}

Wo liegt das Problem? in Bascom funktioniert es aber bei Atmel Studio 
passiert gar nichts.
Vielen Dank schonmal im voraus!

Meik

von nur zufällig hier (Gast)


Lesenswert?

Mal schnell geraten... Leerzeichen im Pfad von ProjectDir?

von nur zufällig hier (Gast)


Lesenswert?

Warum steht "avrdude" als erstes in Arguments?

von Einer K. (Gast)


Lesenswert?

> DDRB |= (1 << PC5);       // damit ist dann PB0 ein Ausgang

DDRB passt nicht zu PC5
Und wird ganz sicher nicht PB0 sein.

(auch wenn es vielleicht nichts mit dem eigentlichen Problem zu tun hat)

von Bastian W. (jackfrost)


Lesenswert?

Wie Arduino Fanboy geschrieben hat , ist PB5 als Ausgang gesetzt. 
Toggeln tust du aber PB0 , welcher noch ein Eingang ist.

Gruß JackFrost

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.