Hallo,
nutze Mikroe (Pascal) für meinen Mega32 und 1wire...
Habe das Problem, das er mit 1Mhz keine 1Wire übertragung mehr macht..
Wieviel MHz benötigt 1Wire??Oder woran kann es liegen das er erst mit
2Mhz anfängt den Sensor richtig auszulesen?
verdammt, der Controller muss wirklich mit 2Mhz laufen..was für eien
Verschwendung :-(
"Der Master muss einen Takt von mindestens 1.8MHz aufweisen. Zudem muss
die
Versorgungsspannung beim Master mit einem PullUp-Widerstand auf 5V
hochgezogen
werden."
Tom schrieb:> verdammt, der Controller muss wirklich mit 2Mhz laufen..was für eien> Verschwendung :-(
Wenn man den 1-Wire Code befehlsgenau hindrechselt, dann geht es wohl
auch mit 1MHz noch. Nur muss man dann eben Einzelbefehle für Timing
verwenden, statt automatisch berechneter Delayloops, und dieser Code
geht dann nur noch mit 1MHz, wird bei 2MHz scheitern.
Tom schrieb:> habe keienrlei Delay loops drin bzw doch 180µs :-) aber auch ohne die> klappt es bei 1Mhz nicht..also scheint es wirklich unter 1,8MHz nicht zu> gehen
Dann guck mal, was der Compiler aus deinem Pascal-Code gemacht hat.
Wahrscheinlich ist da noch Luft drin.
Tom schrieb:> CALL _Ow_Write+0> CALL _Ow_Read+0
Diese Calls müssen ja irgendwo hingehen.
Und da müssen dann wiederum Calls zu den Bitfunktionen stehen.
Das ganze sollte auch mit 1 MHz klappen.
Ich habe es mit einem ATtiny13 mit 1,2MHz problemlos zum Laufen
bekommen.
Auch auf einem ATmega8 klappt es auch hervorragend mit 1 MHz.
Allerdings habe ich es mit dem Atmel Studio mit GCC gemacht.
Peter hat Recht:
Prüfe man das Timing beim Lesen und Schreiben der Bits.
Ich vermute das die Delays bei langsamen Takt zu ungenau (länger)
werden.
Kürze doch mal die Delays und zeige uns doch mal das Pascal-Programm.
Beim Lesen muss das Sampeln innerhalb von maximal 15 uS erfolgen. Aber
mache es so schnell wie möglich (1 uS). Nicht unnötig herauszögern.
Bei Peters Library wird auch beim lesen 15 uS gewartet. Das klappt
meistens, ist aber immer an der Grenze und sollte vermieden werden
(sorry Peter, ansonsten eine super Library).
Eventuell kann der GCC auch wirklich optimieren. Das abgedruckt
Pascal-Compilat dürfte State-of-the-Compiler-Art sein, nur eben von vor
20..25 Jahren. Einzig um den Bit Datentypen beneide ich die Besitzer
dieses Tools.
@Tom, die Standard-Libs von mikroE sind neben dem Compiler selbst auch
Schrott. Ich nutze unter anderem auch mikroPascal, habe aber aufgrund
der Unzulänglichkeiten des Compilers (er optimiert kaum bis garnicht)
zumindest alle meine units selbst geschrieben. Wenn du magst, melde dich
mal via PM, oder melde dich hier im Forum an.
Ja leider ist bei mikroe nicht alles Gold was glänzt, nur leider
schränktmich e-lab zu sehr ein, als das ich berit währe so viel Geld für
einen Compiler auzugeben, den ich dann alle X JAhre wieder für sehr viel
Geld upgraden muss :-(
Desweiteren ist daas E-Lab Forum das allererste überhaupt aus dem ich
jemals gelöscht/rausgeworfen wurde vom Co Moderator..seit dem haben die
bei mir verschissen.
Wenn der Rolf von ELab mal nicht mehr ist, ist das ganze Teil wertlos
daher kommt E-Lab leider auch nicht in Frage, also gibt es leider nichts
besseres als Mikroe..cool wäre wennn Freepascal mal voll Atmel oder ARM
unterstüzuen würde un sich dort eine entsprechende Community bilden
würde mit regen Austausch an Units...
Ich beschäftige mich zwar auch immer wieder mal mit C kann aber bis
heute nicht so recht den Sinn für 90% der Anwender erkennen..die
Fehlersuche ist haarsträubend in C.
Und auch da würde ich gerne weider auf mikroe setzen als auch die ganzen
freien Versionen..somit bleibt man so oder so immer wieder bei Mikro e
hängen :-( Aber portabler geht es halt nirgends anders
Tom schrieb:> verdammt, der Controller muss wirklich mit 2Mhz laufen..was für eien> Verschwendung :-(
Was ist denn überhaupt Dein Problem, kommt die Netzsicherung bei 2MHz
oder wie?
Du willst an was rumdockern, was doch völlig nebensächlich ist.
Du kannst ja auf den ATmega324 upgraden, da kannst Du zur Laufzeit den
CPU-Prescaler ändern.
?!?
Das Problem ist das der Controller mit 2MHz laufen muss und nicht wie
geplant mit 1Mhz, mit den zusätzlichen Stromsparmodi muss ich mich
ebenfalls noch beschäfitgen!
Tom schrieb:> Das Problem ist das der Controller mit 2MHz laufen muss und nicht wie> geplant mit 1Mhz
Dem MC ist das egal, der kann bis 16MHz.
Die Frage ist, warum ist es für Dich ein Problem?
Und ob der leicht geringere Stromverbrauch überhaupt merkbar ist, kann
man erst am Gesamtverbauch zusammen mit der restlichen Schaltung
erkennen.
Z.B. ein Spannungsregler 7805 zieht allein schon 5mA, ein ATmega32
@2MHz/5V im Idle aber nur 1,5mA.