falsches Hochzählen - Verständnisfehler?

Gast #3909388
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
#3909402
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.
#3909406
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
Gast #3909542
@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
#3909552
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.
Gast #3909557
"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.
#3909560
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?
Gast #3909738
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.