Autor |
|
|
|
BID = 707390
DonComi Inventar
     
Beiträge: 8605 Wohnort: Amerika
|
|
Vermutlich stimmt entweder dein Systemtakt nicht (falsche Fuse-Konfiguration) oder dein Taschenrechner.
Mit deiner Timerkonfiguration und den Timerwerten komme ich auf gute 160Hz.
(1638400Hz/64)/((256-100)Hz)
Hinzu kommt die BASIC-typische Präzision von nur 700ms Abweichung ...
P.S.: die Software wird schon Recht haben. Schaut man sich die Skalaeinteilung auf der Zeitachse an, sieht man etwas mehr als 20ms Periodendauer. 20ms wären genau 50Hz, hier ist die Periodendauer größer, die Frequenz also kleiner: die knappen 20Hz passen also. Wie gesagt, ich gehe von Fehlkonfiguration des Systemtakts aus.
Edit:
Na, das Datenblatt des AVRs! Schaue dir den CTC-Modus an, da wird nach einmaliger Konfiguration der entsprechenden Register alles in Hardware erledigt!
Zur Wellenform deines "Oszis": Das ist schon richtig so. In Wirklichkeit kommt aus dem µC ein sauberes Rechteck. Die Soundkarte ist weder für Rechtecke noch für so niedrige Frequenzen konzipiert. Bei 1s Zeitintervall kann man auch noch gut eine LED anschließen. Für alles andere dann ein richtiges Oszi oder eben lernen, wie man die Signalverläufe zu deuten hat.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 12 Aug 2010 16:26 ] |
|
BID = 707393
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| Sieht nämlich nicht so aus wie eine Rechtecksschwingung! | Eine solche Kurvenform entsteht, wenn man über einen (zu kleinen) Kondensator ankoppelt.
Dieser Kondensator kann sich zur Abtrennung von Gleichspannung auch auf der Soundkarte befinden.
Je länger das Dach des Rechteckimpuls dauert, umso mehr lädt sich der Kondensator auf, und umso geringer wird die am ADC anstehende Spannung.
Diesen exponetiellen Abfall siehst du auf deinem Oszillogramm. |
|
BID = 707416
freakypete Neu hier

Beiträge: 37
|
Mir ist beim Experimentieren noch etwas aufgefallen:
Erstmal den Code, mit dem ich mich beschäftige.
Code : |
$regfile = "m8515.dat"
$crystal = 1000000
Config Portc = Output
Config Portb.0 = Output
Config Timer0 = Pwm , Compare Pwm = Clear Up , Prescale = 8
Do
Compare0 = 128
Portc.0 = 0
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0
Wait 1
Portc.0 = 1
Portc.1 = 0
Portc.2 = 0
Portc.3 = 0
Wait 1
Loop
End
|
|
Folgendes: So, wie es hier steht funktioniert es (fast) perfekt. Nur die Frequenz am PWM Ausgang ist (wie ich auch berechne) ~244 Hz. Leider wieder viel zu viel für LCDs. Also versuche ich, den Prescaler auf 64. Doch nicht wie erwartet messe (und sehe) ich ~30 Hz sondern 7,6 Hz.!!!
Dieses Ergebnis bekomme ich rechnerisch aber nur, wenn ich 4 MHz Systemtakt und 1024 Prescaler verwende.
Habe ich etwas übersehen, weshalb der Prescaler mit 64 nicht richtig geht?
|
BID = 707417
DonComi Inventar
     
Beiträge: 8605 Wohnort: Amerika
|
Wieso gibst du denn hier mit einem mal 1MHz als Systemtakt an?
Ohne jetzt groß nachzudenken, schau mal nach, ob der Systemtakt intern geteilt wird. Einige Mikrocontroller der AVR-Serie machen das standardmäßig.
P.S.: dieses BASCOM ist doch ätzend.
Man würde alles 100x besser verstehen (was im Hintergrund passiert), wenn man sich an die symbolischen Bezeichner aus dem Datenblatt gehalten hätte. Stattdessen führt man 150 Schlüsselwörter für jeden Furz ein.
_________________
|
BID = 707422
freakypete Neu hier

Beiträge: 37
|
Zitat :
| Wieso gibst du denn hier mit einem mal 1MHz als Systemtakt an?
|
Weil das der Standardtakt für den Atmega8515 ist. Im Datenblatt kann ich nichts darüber finden, ob der Takt geteilt wird... Nur der Prescaler teilt ihn mir für den Hardware-PWM Ausgang.
Mit den Prescale = 8 und 1 MHz Takt funktioniert es ja. Nur mit 64 Prescaler gehts nicht.  Habe selbst keine Idee  was da los ist!
|
BID = 712223
freakypete Neu hier

Beiträge: 37
|
Da nichts mehr nachkommt und ich das Problem gelöst (keine Ahnung wie, aber es funktioniert) habe, schließe ich den Thread hier.
Danke für alle Antworten!
L.G. freakypete
|