Guten tag.
erneute frage an die experten
ich habe schon einmal hier um hilfe gebeten wegen der timer auf meinem
sainsmart mega board
also ich verwende in atmel studio 6.2 für den atmega 2560
ich habe folgende einstellungen gemacht, um eine reziproke
frequenzmessung durchzuführen
EIMSK|=(1 <<INT3)|(1 <<INT5);
EICRA|=(1<<ISC31)|(1 <<ISC3);
(Schreibe die einstellungen nur pro interupt raus)
TCCR3B=0;
TCCR3B=(1<<CS30);
TIMSK3=(1 <<ICIE3)|(1 <<TOIE3);
um die flanken über den INT pin einzulesen, stelle ich die ISR so ein
ISR(INT_vect)
{...}
Jetzt is mir mal aufgefallen, dass bei frequenz 0 trotzdem immer wieder
so werte von 0, xx angezeigt werden, statt einfach nur 0
Liegt das vl an der Berechnung mittels FLOAT?
ausserdem ist der zähler bereits bei 255 am ende, also doch nur 8
bit....laut datenblatt ist er 16 bit gross
meine while schleife ist auch viel langsamer, als wenn ich mit
torzeit-interrupt die INT pins einlese, es verringert sich die
programmgeschwindigkeit auf 1/3
Ausserdem.. wenn ich die TIMSK auf input capture UND overflow stelle,
welche pins spreche ich dann wirklich an?
habe noch ein display am controller hängen, klar, das bremst, aber das
kann ich softwaremässig wegschalten
vielen dank schon mal
gartler p. schrieb: > Jetzt is mir mal aufgefallen, dass bei frequenz 0 trotzdem immer wieder > so werte von 0, xx angezeigt werden, statt einfach nur 0 > Liegt das vl an der Berechnung mittels FLOAT? Schau dir die Ausgangswerte an, mit denen du in die Berechnung reingehst, dann weisst du es. Es ist nicht verboten, sich während der Entwicklungsphase auch mal die Werte von Variablen ausgeben zu lassen, die im fertigen Programm der Benutzer nie zu Gesicht kriegen wird. > ausserdem ist der zähler bereits bei 255 am ende, also doch nur 8 > bit....laut datenblatt ist er 16 bit gross ? Wenn dein Datenblatt sagt, dass er 16 Bit groß ist, dann ist der das auch. > meine while schleife ist auch viel langsamer, als wenn ich mit > torzeit-interrupt die INT pins einlese, es verringert sich die > programmgeschwindigkeit auf 1/3 Tja. Was machst du dann in der Hauptschleife. VOn irgendwoher muss ja der Laufzeitzuwachs kommen. > Ausserdem.. wenn ich die TIMSK auf input capture UND overflow stelle, > welche pins spreche ich dann wirklich an? Den Input Capture Pin (sofern ich die Frage richtig verstehe). > habe noch ein display am controller hängen, klar, das bremst, aber das > kann ich softwaremässig wegschalten Was verstehst du unter 'wegschalten'. Was bremst, das sind Ausgaben aufs Display. Gibst du in der Hauptschleife ständig Werte aus, obwohl die bereits am Display stehen (weil sich der Wert in der Zwischenzeit gar nicht gändert hat), dann bremst das natürlich, auch wenn man am LCD nichts von der Ausgabe sieht.
gartler p. schrieb: > (Schreibe die einstellungen nur pro interupt raus) Hä? gartler p. schrieb: > Liegt das vl an der Berechnung mittels FLOAT? Hä? gartler p. schrieb: > ausserdem ist der zähler bereits bei 255 am ende, also doch nur 8 > bit....laut datenblatt ist er 16 bit gross Hä? gartler p. schrieb: > Ausserdem.. wenn ich die TIMSK auf input capture UND overflow stelle, > welche pins spreche ich dann wirklich an? Hä? gartler p. schrieb: > vielen dank schon mal Keine Ursache ;) Mal Klartext: Zeig deinen ganze Code. Deine Fragen sind nicht wirklich verständlich. Oliver
@karlheinz..das mit dem anschauen der werte ist so ganz ok....hab gesagt, ich arbeite mit atmel studio.... sorry..verschrieben, da ich simultan noch was geschrieben hab es ist die arduino software kurzum: ich hab INT pins, die will ich so beschalten, dass bei sich ändernden Flanken etwas tut...nicht mehr denn am board sind die icp nicht alle ausgeführt, das hilft mir nachher nix ich kann nur die INT pins nehmen.... brauche eigentlich eh nur eine capture isr zu oliver....so geistreich dein kommentar auch zu sein scheint..er ist es nicht...kommt nun auch n hä. net böse sein, aber so schlecht formuliert war es nicht...ausser man hat kein vorstellungsvermögen und ist der deutschen sprache nicht allzu mächtig ganzer code hätte etwa 600 zeilen...das erspar ich jedem
gartler p. schrieb: > das mit dem anschauen der werte ist so ganz ok....hab gesagt, > ich arbeite mit atmel studio... > sorry..verschrieben Und? Gerade in der Arduino Umgebung ist es doch noch viel simpler Pipifax, sich mal zwischendurch ein paar Werte am PC ausgeben zu lassen. > net böse sein, aber so schlecht formuliert war es nicht...ausser man hat > kein vorstellungsvermögen vorstellungsvermögen kriet man auf dieser Seite des Bildschirms, wenn man den Code sehen würde. > ganzer code hätte etwa 600 zeilen...das erspar ich jedem Lieb von dir. Aber man kann auch komplette Demoprogramme machen, die lauffähig sind, das Problem zeigen und keine 600 Zeilen lang sind. Und stell dir mal vor. Es passiert gar nicht mal so selten, dass man im Zuge dieses Abspeckens das Problem selbst findet. Arduino hin oder Atmel Studio her. Ich bin raus. Wenn du nicht willst, dann eben nicht.
"net böse sein, aber so schlecht formuliert war es nicht...ausser man hat kein vorstellungsvermögen und ist der deutschen sprache nicht allzu mächtig" Keine Rechtschreibung - keine Hilfe.
Mendax schrieb: > Keine Rechtschreibung - keine Hilfe. Rechtschreibung ist eins, aber auch in der kreativen Wortwahl und den angefangenen aber nie beendeten Sätzen ergibt sich -zumindest für mich- erhebliches Interpretationspotential. gartler p. schrieb: > gesagt, ich arbeite mit atmel studio.... > sorry..verschrieben, da ich simultan noch was geschrieben hab > es ist die arduino software Darf ich das mal versuchen zu interpretieren? Du hast oben geschrieben du würdest Atmel Studio benutzen, hier willst du uns sagen es ist eine Arduino Entwicklungsumgebung? Wenn dein 16Bit Timer nur bis 255 zählt, könnte das daran liegen, daß du nur das untere Byte anschaust?
Dein EICRA|=(1<<ISC31)|(1 <<ISC3); sieht ein wenig komisch aus. Da fehlt eine 0. Ich würde mal alle Register auf weitere Fehler kontrollieren.
Schade, dass der umgang untereinander hier so derb zu sein scheint...zumindest von manchen leuten ich bedanke mich trotzdem für das engagement einiger personen bei so viel profis hier frag ich mich, wozu es denn ein forum gibt, wenn man nur kleine, für laien schwer verwertbare, infobrocken serviert bekommt ich für meinen teil bin raus, gott sei dank gibt es noch weitere möglichkeiten, als die dürftige ausbeute von mikrocontroller.net byebye
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.