unbeschreiblicher Rahul wrote:
> Solche Sachen macht man nicht (mehr) mit einem "manuellen"
> Timer-Nachladen, sondern mit dem CTC-Mode. Der geht bei Mega8 allerdings
> nur bei Timer1 (16Bit) und Timer2 (8Bit).
>
Ich hab leider keine ahnung wie das sonst funktioniert...
>>zeit = zeit/1000;
>
> wirr...
> Long sind doch 32Bit-Integer, oder? (So riesige Zahlen benutze ich
> nie...)
Ich will über einen Zeitraum von 2 stunden messen und das mit einer
Genauigkeit von mindestens 1/100s - daher dachte ich an eine long
variable...
> Wenn man eine Zahl z.B. 5 durch 1000 teilt, bekommt man als Ergebnis 0.
> Also kann Zeit nie grösser als 1 werden...
>
> 16MHz / 64 = 250000 Hz
> Das würde also schon dicht an deine 1kHz herankommen.
>
> Zumindest bei AVRgcc sollte zeit als volatile deklariert werden; wie das
> CodeVision ist, kann ich nicht sagen.
>
>>TCNT0=0x00; //Vorladen mit 6
> Da wird nicht das veranlasst, was der Kommentar verspricht...
>
>
> Nur so am Rande:
> das:
> PORTB=0x00; // 0 0 0 0 0 0 0 0
> DDRB=0x3F; // 0 0 1 1 1 1 1 1
> PORTC=0x0E; // 0 0 0 0 1 1 1 0
> DDRC=0x30; // 0 0 1 1 0 0 0 0
> PORTD=0x03; // 0 0 0 0 0 0 1 1
> DDRD=0xFE; // 1 1 1 1 1 1 1 0
> UBRRH=0x00; // UBRR = 103 Dez = 0x0067 for 9600 Bd.
> UBRRL=0x67;
> Ist einer der sinnfreiesten Kommentare, die ich mir vorstellen kann.
Diese Komentare stammen von meinem Lehrer, bei dem wir unseren "MegaPac"
- also unser Demoboard gebaut haben. Stammt aus einem Beispielsprogramm,
um nicht andauernd alle In und Outputs einstellen zu müssen...
lg