www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega16 führt Programme nicht aus


Autor: Jonas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich benutze einen LPT-ISP (nicht hauen) und habe mir das Testboard wie 
im AVR-Tutorial beschrieben aufgebaut. Mit avrdude (im WinAVR-Paket) 
kann ich mein Testprogramm ohne Probleme auf den AVR überspielen (siehe 
http://pastie.org/223486 für sourcecode + avrdude output). Doch nun tut 
sich einfach nichts am AVR. Ich habe eine LED and Pin B0 angeschlossen 
(VCC->Widerstand->LED->AVR), die nun blinken sollte. Doch das geschieht 
nicht, die LED bleibt aus.
Gleiches habe ich in einer testweise zusammengebastelten UART-Umgebung 
(MAX232 etc.) erfahren - keine Fehler beim Kompilieren oder sonstwo, 
aber das Programm läuft nicht.
An der Taktfrequenz liegt es nicht, der angeschlossene Quarzoszi 
funktioniert (d.h. wenn man ihn während des programmierens abzieht, 
hagelt es Fehler)....

Hat jemand eine Idee?

Gruß
Jonas

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Polung ist ja richtig denke ich mal. Aber man sollte sich vorher mal die 
delay.h ansehen:

>The macro F_CPU is supposed to be defined to a
>constant defining the CPU clock frequency (in Hertz).
>The maximal possible delay is 262.14 ms / F_CPU in MHz.

Bei 16MHz sind das also nur 16ms. Das ist verdammt schnell und du 
dürftest nur ein glimmen sehen.

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nix gegen parallelport-isps ^^

50% helligkeit der led sieht man auch. das geht also wirklich ned.
ich vermute den fehler irgendwo anders. verschiedene massen? kein pullup 
am reset? usw...

das mag zwar für den fall jetzt mit kanonen auf spatzen geschossen sein, 
aber es lohnt sich doch ein simulationstool - mindestens für später.
ich empfehl da immer gern proteus: das tool erlaubt dir, mikrocontroller 
einzubinden und ein externes .hex-file zu laden. sprich: dein 
simulierter atmel am pc läuft mit genau dem programm, das du geschrieben 
hast.
dazu natürlich noch der restlichen scherze genug: oszi, dmm, 
fkt-generatur, usw...

http://www.labcenter.co.uk/download/prodemo_downlo...
da gibts ne gratis-demo

und JA, ich weiß, das is übertrieben...

Autor: Jonas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also am reset hab ich ein 10kOhm nach VCC hängen.

Und durch das Proteus steig ich überhaupt net durch.
Gibts da irgendo ein tutorial für?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Und warum nimmst du nicht den normalen Simulator

MfG  Spess

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timmo H. wrote:
> Bei 16MHz sind das also nur 16ms. Das ist verdammt schnell und du
> dürftest nur ein glimmen sehen.

Duhu, dann musst du aber auch weiterlesen, gell? Zitat:
>Perform a delay of __ms milliseconds, using _delay_loop_2().
>
>The macro F_CPU is supposed to be defined to a constant defining the CPU
>clock frequency (in Hertz).
>
>The maximal possible delay is 262.14 ms / F_CPU in MHz.
>
>When the user request delay which exceed the maximum possible one,
>_delay_ms() provides a decreased resolution functionality. In this mode
>_delay_ms() will work with a resolution of 1/10 ms, providing delays up to
>6.5535 seconds (independent from CPU frequency). The user will not be >informed 
about decreased resolution.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also als ich mal damit gearbeitet habe gings bei mir nicht.

Autor: Alan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann sein, das der reset ständig auf low/high (µC immer im ResetModus) 
ist?

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hätt noch nen ganz genialen fehler:
dein file heißt: main.c

> "make.exe" program
> avrdude -p atmega16 -P lpt1 -c stk200    -U flash:w:led.hex
                                                     ^^^^^^^^^
kann es sein, dass du das falsche .hex file brennst? =)

Autor: Jonas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[SOOOOOOOOOOOOOOOLVED]

das problem war beim LPT-Progger zu suchen: zieht man ihn nach dem 
brennen vom board ab, funktioniert das programm. Liegt wohl am 
Reset-Pin.

Gruß
Jonas

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael H* wrote:
> nix gegen parallelport-isps ^^

Once again. Der Fehler war der Parallelport-Programmer ;)

Autor: Michael H* (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann gar net sein =)
ich tipp ja auf ne kalte lötstelle, die kontakt kriegt, wenn man den isp 
abzieht - ganz ehrlich. natürlich schweißt sich die dann fest und bricht 
erst beim anstecken wieder - klare angelegenheit =)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.