-
-
Erfahrener Benutzer
Roboter-Spezialist
Also ich hab den Code oben geändert.
Aber die max. Zeit die du jetzt messen kannst ist bei 65535us also 65,535 millisekunden. Wobei sich das auch irgendwie ändern liese. Und das Warten auf ein neues Ergebniss mit while(zeit_int0==0); ist auch nicht sehr elegant. In einem Roboter würde ich in regelmäßigen abständen (geregelt durch Timer0 oder Timer2) eine neue Messung starten und gleichzeitig das Ergebniss der alten Messung abholen.
Gruß Muraad
EDIT: Ich hab hier die start_us_messung() auch nochmal auf 8Mhz geändert da im Datenblatt vom srf04 steht das es eine Pulsweite von max. 40ms zu messen gibt. Womit hier die 65,535ms max. Messzeit ausreichen. Nochmal zur Höchstmesszeit: 8Mhz/8 Prescaler= 1.000.000Hz
1/1.000.000Hz=1micro sekunde Takt. Timer1 hat 16Bit also 2<hoch>16=65536 Takte bis er überläuft. Da ich nicht weis was in dem Fall passiert wenn er überläuft "Höchstmesszeit".
Wobei es sich auch ändern lassen würde aber da müsst ich jetzt mehr drüber nachdenken. Mit Fusebits kenn ich mich nicht so gut aus. Ich hab sie bei meinem RN-Control noch nie verändert. Aber auch weil bei mir PonyProg nicht funktioniert und ich sie, wenn überhaupt, damit verändert hätte.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen