Wait-Schleife

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 30 11 2024  03:51:35      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Wait-Schleife

    







BID = 405493

robodriver

Stammposter

Beiträge: 217
 

  


Hallo Leute,

ich habe wieder mal ein Problem, welches ich mir nicht erklären kann.
ich habe folgenden einfachen Quellcode in BASCOM geschrieben:


Code :


$regfile = "m8def.dat"
$crystal = 8000000
Ddrb = &B00000001
Ddrd = &B10000000
Ddrc = &B00000000
Portc = &B00000000
Portb = &B00000000
Portd = &B00000000

Gelb Alias Portb.0 'Gelbe LED

Set Gelb
Waitms 500
Reset Gelb

End



Der Chip hängt an einem externen 8MHz Quarz Oszillator. Habs auch mit meinem Messgerät nachgemessen und es wird mir 7,99 MHz angezeigt.
Wenn ich nun die Spannung einschalte dann lechtet meine Gelbe LED ziemlich genau 4 Sekunden. Das ist 8-mal so lange wie sie eigentlich sollte. Woran könnte das liegen? Gibt es irgendwie noch einen internen Takt-Teiler oder so?

Ich nutze einen ATMega8-16PU. Laut Datenblatt kann er 0-16MHz.

Kann sich jemand erklären warum er so langsam läuft?

BID = 405499

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

 

  


Zitat :
Laut Datenblatt kann er
Du solltest das das Datenblatt ganz lesen, bevor du los programmierst und als erstes dann die benötigten Initialisierungen durchführen.
Dann wüsstest du nämlich, daß diese Prozessoren einen programmierbaren Oszillator-Vorteiler besitzen.

_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !


[ Diese Nachricht wurde geändert von: perl am  9 Feb 2007 16:54 ]

BID = 405509

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Genau was perl sagen wollte: Sind die Fuses auch so programmiert, dass der externe Quarz als Taktquelle dient?

Siehe Datenblatt unter "System Clock".

_________________

BID = 405513

robodriver

Stammposter

Beiträge: 217

Danke für die schnelle Antwort

Supi. Stimmt, hatte es vergessen. Hab auf externen Quarz umgestellt und schon gings. Zumindest mit dem einfachen Wait Befehl.

Bei dieser Schleife siehts schon wieder schlecht aus:

Set Gelb

For A = 0 To 500
Temp = Eingang
Writeeeprom Temp , A
Waitus 900
Next A

Reset Gelb

Für diese Schleife sollte er ungefähr ne halbe Sekunde benötigen. Sie läuft aber ganze 3,5 Sekunden.
Woran könnte das nun wieder liegen?

A ist als Long
Temp as Byte
Einganz Alias Pinc.5
Gelb wie gehabt

BID = 405525

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Wenn du auch mal unter EEPROM im Datenblatt lesen würdest, würdest du lesen, dass es eine gewisse Zeit dauert, bis die Daten ins E²POM geschrieben wurden. Das kann pro Byte manchmal 10ms dauern...
Der Befehl wird dann wohl das Bit pollen, bis der Schreibvorgang abgeschlossen ist.

Leute, programmiert mehr nach Datenblättern und nicht nach fertigen Sachen in teils suboptimalen Sprachen.

_________________


[ Diese Nachricht wurde geändert von: DonComi am  9 Feb 2007 18:54 ]

Edit:

Klingt etwas fies... Ist aber nicht so gemeint gewesen.

[ Diese Nachricht wurde geändert von: DonComi am  9 Feb 2007 18:58 ]

BID = 405543

robodriver

Stammposter

Beiträge: 217

Oh stimmt. ca 1ms bei 8 MHz daran lags. Jetzt gehts einwandfrei Wieder was dazu gelernt. Jetzt weiß ich auch gleich warum EEPROMS als Arbeitsspeicher ungeeignet sind

Vieln Dank an alle.

Ihr seid spitze!
Weiter so


Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 2 Beiträge verfasst
© x sparkkelsputz        Besucher : 182426534   Heute : 493    Gestern : 5094    Online : 244        30.11.2024    3:51
0 Besucher in den letzten 60 Sekunden         ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0556540489197