ATmega16 führt Programme nicht aus

Gast #909516
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
#909531
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.
Gast #909552
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_download.cfm#professional
da gibts ne gratis-demo

und JA, ich weiß, das is übertrieben...
Gast #909781
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.
Gast #910221
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? =)
Gast #910446
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

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