Forum: Mikrocontroller und Digitale Elektronik Atmega128 delay.h


von Michael F. (michel1976)


Lesenswert?

Hallo
vielleicht kannmit jemand helfen. Bin gerade dabei ein Programm 
zuschreiben und habe die delay.h eingebunden nur jedesmal wenn der 
controller das display initialiesieren soll hängt er sich beim zugriff 
aus delay_ms(50)z.B. auf. habe auch versucht nur eine led damit zum 
blinken zu bekommen hängt sich an dem punkt beim zugriff auf delay auf.
hat da jemand eine erklären für???

von Εrnst B. (ernst)


Lesenswert?

die delay.h Funktionen gehen nur, wenn der GCC das MIT Optimierung 
übersetzt, ansonsten brauchen die VIEL zu lang.

Also mal checken, ob der GCC auch mit -Os o.ä. aufgerufen wird.

von Michael (Gast)


Lesenswert?

Habe eine Lösung gefunden mir der ich Leben kann habe im bei der 
erstellung gesagt das er kein 128 sonder der bau gleiche 103 er ist und 
siehe da die delay funktion funkt.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ist bei deinem Atmega128 eventuell noch die fabrikmässig gesetzte 
M103C-Fuse (Atmega103 Compatibility Mode) aktiv?

http://www.mikrocontroller.net/articles/AVR_Checkliste#Besonderheiten_bei_ATmega64_.2F_ATmega128

von Gast (Gast)


Lesenswert?

beim delay ist auch unbedingt das maximum zu beachten siehe:

http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html

von Johannes M. (johnny-m)


Lesenswert?

Stefan B. wrote:
> Ist bei deinem Atmega128 eventuell noch die fabrikmässig gesetzte
> M103C-Fuse (Atmega103 Compatibility Mode) aktiv?
Mit ziemlicher Sicherheit sogar...

von Michael (Gast)


Lesenswert?

Hallo nein die fuse ist nicht gesetzt hatte alles schon ausprobiert

von Johannes M. (johnny-m)


Lesenswert?

Wenn das Teil nur funktioniert, wenn man es wie einen Mega103 behandelt, 
dann gibt es kaum Spielraum für andere Möglichkeiten. Und wenn die Fuse 
"nicht gesetzt" ist, dann heißt das, sie ist programmiert ("0")... Um 
den Mega128 als solchen zu benutzen, muss die Fuse "unprogrammed", also 
"1" sein.

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.