Ah Danke!
Oh, das ist natürlich blöd mit dem PWM. Daran will ich lieber nicht rumfummeln.
Hm dann werd ich das am besten mal überarbeiten und einfach Timer0 für den Interrupt benutzen, auch wenn dort das niedrigste 61 Interrupts pro Sekunde sind.
Ah Danke!
Oh, das ist natürlich blöd mit dem PWM. Daran will ich lieber nicht rumfummeln.
Hm dann werd ich das am besten mal überarbeiten und einfach Timer0 für den Interrupt benutzen, auch wenn dort das niedrigste 61 Interrupts pro Sekunde sind.
Hi,
Bin selbst (noch?) kein Bascom Freak und deshalb sollten meine Aussagen besser bestätigt werdenKann es vielleicht auch sein dass der Quellcode im ISR zu lang ist und der Prozessor es gar nicht schafft den 10 Mal pro Sekunde abzuarbeiten:
In der ISR wird wohl die meiste Zeit mit den GETADC verbraten werden. Der ADC ist mit Prescale=Auto konfiguriert. Hab das mal im Simulator nachgeschaut. Bascom macht daraus einen ADC Takt von 125000Hz. Für eine Single Conversion werden 13 ADC-Takte gebraucht also ca 104µs. Nun schätze ich ganz grob, daß die Abarbeitung der ISR sicher unter 1ms bleibt.
Abgesehen davon bin ich selbst mit dem Bascom Kommando GETADC in einer ISR nicht glücklich geworden. Bin gespannt auf Deine Erfahrung.
Wenn Dir 60 Mal pro Sekunde mit Timer0 zu schnell ist, könnte man einen Zähler in der ISR hochzählen lassen und nur jedes sechstes Mal die komplette Routine durchlaufen lassen. Dann hat man zwar auch 60 Interrupts, wobei aber nur bei 10 pro Sekunde viel Zeit verbraucht wird.
Gruß
Searcher
Hoffentlich liegt das Ziel auch am Weg
..................................................................Der Wegzu einigen meiner Konstruktionen
Lesezeichen