Pimi schrieb:
> Hallo,
> Leider funktioniert mein Timer immer noch nicht. Pure Verzweiflung!
> Alle Komponenten meines Programms außer Timer 1 funktionieren.
> Darum habe ich nur ein kleines Timer-Programm zugeschickt. Den Timer
> hier habe ich mit Code Vizard (SiSy-AVR) generiert.
Vergiss doch einfach mal dieses ganze SiSy Zeugs und diverse
Code-Wizards. Verstehen wie die Dinge tatsächlich funktionieren kann
durch keinen Wizard ersetzt werden!
Wenn ich sowas ....
1 | TCCR1B=0x05; // Teiler 1/1024
|
2 | TCCR1B|=0x02; // Modus: Zählen bis Vergleichswert
|
schon sehe, krieg ich die Krise und meine Bereitschaft da irgendwelchen
Code zu analysieren tendiert rapide gegen 0.
Was ist denn nun?
1 | #define F_CPU 3686400
|
2 | #include <avr\io.h>
|
3 | #include <util\delay.h>
|
4 |
|
5 | int main()
|
6 | {
|
7 | Port auf Ausgang schalten
|
8 |
|
9 | while( 1 )
|
10 | {
|
11 | LED einschalten
|
12 | _delay_ms( 1000 );
|
13 | LED ausschalten
|
14 | _delay_ms( 1000 );
|
15 | }
|
16 | }
|
blinkt deine LED mit 1 Sekunde an/aus oder blinkt sie nicht in diesem
Zeitraster? Ehe das nicht stimmt hat es doch keinen Sinn irgendwelche
weiteren Berechnungen oder Versuche mit Timerzeiten zu machen, weil dann
etwas ganz Grundlegendes nicht stimmt! Dein µC taktet dann eben nicht so
schnell, wie der Wert, mit dem alles andere berechnet wurde, aussagt.
(Entweder das, oder der Optimizer ist nicht eingeschaltet)
Du kannst stundenlang irgendwelche Berechnungen darüber anstellen, wie
weit du mit 250km/h fahren kannst bzw. wo du da am Sonntag Nachmittag
überall hin einen Ausflug machen kannst. Wenn aber dein VW-Käfer (das
Original) nun mal nicht mehr als 100km/h schafft, dann ist die ganze
Rechnerei sinnlos und deine Ergebnisse werden gnadenlos falsch sein.