Alle Viertelsekunde was zum PC schicken (16bit Timer, CTC)

Gast #314870
Lesenswert?
• ▲
▼
hi,

ich wollte alle Viertelsekunde ein 'a' udn einen Zeilenumbruch per
RS232 an den PC schicken. Eigentlich funktioniert das auch, nur alles
geht vile zu schnell. Die 'a's überfluten geradezu Hyperterminal.

Warum? Habe ich Timereinstellungen falsch gesetzt?

Quellcode hängt an

MfG, Johannes
Angehängte Dateien:
Gast #314872
Lesenswert?
• ▲
▼
> Wenn Du Dir diesen Fehler suchen läßt, solltest Du Dir überlegen,
> Bäcker zu werden :-)

heißt das jetzt:
1. dass ich entweder einen sehr dummen fehler gemacht hab
oder 2.: such doch selbst ?
Gast #314873
Lesenswert?
• ▲
▼
Ich würde es anders ausdrücken: Ergreife die Chance, Dich mit dem
Prozessor so richtig auseinander zusetzen. Spätere Fehler in einem
komplizierterem System werden voraussetzen, dass Du dich mit dem Timer
bestens auskennst.
Erfahrungsgemäß gibt es nämlich nichts schlimmeres, wie ein Programm,
das auf Anhieb funktioniert. Gibt's in einem fortgeschrittem Stadium
Deines Projektes dann doch ein Problem, kannst Du nicht mehr
unterscheiden, wo die Fehlerursache liegt, bzw. mußt Dich erst recht
mit der Materie auseinandersetzen.

Grüße

Christian
Gast #314875
Lesenswert?
• ▲
▼
@Christian: diesen Kommentar hättest Du Dir sparen können.
Andere Leute schwach anzureden ist nicht gerade Zeugnis hohen
Charakters und sozialer Kompetenz.

Ich hatte zuerst alle Posts gelesen, dann den Code.
Ich hatte schlimmsten Spagetticode befürchtet, aber er ist recht in
Ordnung, bis auf die eine Berechnung.

Oder, Christian, wie hättest Du es gemacht?
(Das soll eine Aufforderung sein, einen 1A-Code zu posten!)

@Johannes: Im Listing oder im Simulator hättest Du aber gleich sehen
können, wo der Hase im Pfeffer liegt.
Gast #314876
Lesenswert?
• ▲
▼
Hallo Profi,

Ich habe an dem Code auch nix auszusetzen. Sauber und übersichtlich.
Ich frage mich nur, wo hier der Ergeiz ist, so einen Fehler zu finden.
Und es werden härtere Nüsse folgen!

Grüße

Christian

P.S.: Fast wäre ich der Versuchung erlegen. Netter Versuch ;-)
Gast #314877
Lesenswert?
• ▲
▼
Noch eine kleine Anmerkung:

Bei den neueren AVRs (Tiny..., Mega...) wird der Compare Match
Interrupt erst bei OCVAL+1 ausgelöst. Bei deinem Code (d.h. falls die
Berechnung klappen würde) also einen Timertick zu spät.

Das unterschiedliche Verhalten zu den älteren AVRs (90S...) wird z.B.
in der Appnote AVR091 (=Vergleich zwischen AT90S2313 und dessen
Nachfolger Tiny2313) gut beschrieben.

Das AVRStudio simuliert den CompareMatch-Interrupt bei den älteren AVRs
(AT90S2313) übrigens nicht korrekt.

MfG Olaf

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.