Funktioniert es jetzt oder funktioniert es nicht?
Hast du auch F_CPU definiert, als du _delay_ms verwendet hast?
Also sie arbeiten eigentlich nicht richtig - und sind so ausgelegt, dass der Fehlfaktor genau so hoch ist, dass sie wieder sichtbar blinken.Im Prinzip sollte es funktionieren, vorausgesetzt, deine waitMs arbeitet richtig.
Also das klappte heute schon 5-6 mal bei nem Programm, mit if (hunderter==0) ....... if (hunderter== 1 ...... if (hunderter==2)
Das delay habe ich mir mal angeschaut, hat aber nicht ordentlich funktioniert (eig. gar nicht)...
Sobald mein Temperatursensor fertig ist, beschäftige ich mich näher damit...
Funktioniert es jetzt oder funktioniert es nicht?
Hast du auch F_CPU definiert, als du _delay_ms verwendet hast?
Es funktioniert, abwer die Taktung ist offensichtlich falsch.
Ich denke schon, so wie es in nem Beispielprogramm vorkam...Hast du auch F_CPU definiert, als du _delay_ms verwendet hast?
Hm, die _delay-Funktionen sind eigentlich die genausten Warte-Funktionen, wenn man keinen Timer benutzt.
Funktioniert es so nicht:
#include <util/delay.h>
#define F_CPU [die Taktrate deines µCs (in Hz!), z.B. 4000000ul]
Jetzt sollte _delay_ms(x) funktionieren.
Du musst aber beachten, dass die Funktionen sehr ungenau arbeiten, falls du den internen Quarzoszillator nutzt.
Ich denke, das Problem liegt nicht in dem Programm, das ich eingebe, sondern entwerder im MK2 oder im Compiler.
Habe eine E-Mail an den Support von myAVR geschickt, eine Bestätigungsmail kam bereits.
Ich hoffe, dass bald eine Lösung kommt...
Mfg
Ok, habe schlussendlich das Problem gefunden.
Ist zwar ziemlich peinlich, dennoch poste ich es:
Bei for-schleifen darf man auf keinen Fall DDRB vergessen, sonst blinkt die LED logischerweise nicht, man verstellt nur den pull-up!!
Ja - unprogrammiert werden die freien Ports auf Eingang ohne
PullUp declariert. Eigentlich bei ISP in der bestückten Schaltung
sehr sinnvoll. VG Micha
Ja - unprogrammiert werden die freien Ports auf Eingang ohne
PullUp declariert. Eigentlich bei ISP in der bestückten Schaltung
sehr sinnvoll. VG Micha
Nicht nur in for-Schleifen. Es ist imnmer wichtig, mittels DDRX anzugeben, in welche Richtung Daten fließen sollen, wenn man nicht aus Versehen einen µC-Pin zerstören will.Bei for-schleifen darf man auf keinen Fall DDRB vergessen, sonst blinkt die LED logischerweise nicht, man verstellt nur den pull-up!!
Was -R2D2 schreibt, trifft den Nagel 100prozentig auf den Kopf.
Für Anwender, die immer die AVRs erst nach dem Bestücken ohne
Sockel in der Anwendung programmieren - ich gehöre zu Denen -
ist das schon Gewöhnungssache. VG Micha
Lesezeichen