Forum: Mikrocontroller und Digitale Elektronik Timer2 ???


von Trasher (Gast)


Lesenswert?

Ich will mit meinem AVR 90S8535 den Timer2 Overflow verwenden
und nur mal alle Sekunde z.B. einen Wert von einer Variable
hochzählen lassen. (Programmierung in C)
Kann mir jemand zeigen wie das geht???
(Ich verwende den Codevision AVR)

von dag (Gast)


Lesenswert?

Hallo,
wenn du Codevision AVR benutzt, kannst du den CodeWizardAVR (F2)
aktivieren.
Stellst den Typ und die Frequenz ein und dann unter Timers
die gewünschten Einstellungen machen.
Generiert wird dir der Code automatisch, so das du nur noch in den
Interrupt eine entsprechende Zählschleife einbinden mußt.

von Trasher (Gast)


Lesenswert?

Ok! Das habe ich ja schon gemacht, aber irgendwie tut sich da nichts.
Kannst du mir nicht ein Beispiel im Forum ablegen?
Ich brauche es dringend.

von dag (Gast)


Lesenswert?

Hallo,
mal ein versuch von mir

#include <90s8535.h>

// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{

// Place your code here
int i;
i=i+1;
if (i>100)
{
    var=var+1;
    i=0;
}
else
{
}
// Reinitialize Timer's 2 value
TCNT2=0x00;
}

var kann z.B. global als int vereinbart werden.

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 3,906 kHz
// Mode: Output Compare
// OC2 output: Disconnected
TCCR2=0x07;
ASSR=0x00;
TCNT2=0x01;
OCR2=0x00;

kann es nicht testen, da ich keinen 90S8535 habe

von Trasher (Gast)


Angehängte Dateien:

Lesenswert?

Hier habe ich den Code mal ins Forum gestellt.
Irgendwie will es nicht hinhauen.
Kann mir jemand helfen.
Ich will nur zeitverzögert einen Wert bzw. die LED's
hochlaufen lassen
Brauche dringend hilfe.

von raoul4 (Gast)


Lesenswert?

hallo,
mal ne andere frage:
ist codevision so was wie bascom, was den code auch so fett macht?

mfg raoul4

von Trasher (Gast)


Lesenswert?

Ich selber kenne BASCOM überhaupt nicht.
Ich will nur den Timer2 verwenden und
eine Zahl z.B. alle Sekunde um eines erhöhen.
Aber ich schaffe es nicht ? Hmm...
Hoffentlich kann mir jemand helfen

von Bernd Walter (Gast)


Lesenswert?

@dag: Nicht vergessen var als volatile zu deklarieren.

von Trasher (Gast)


Lesenswert?

Gibt es hier echt niemand, wo mir dazu ein
passendes kleines Beispiel geben kann.
Ich wäre echt sehr dankbar!

Sorry, aber was bedeutet volatile???

von Khani (Gast)


Lesenswert?

@Trasher
Ein optimierender Compiler (und als einen solchen kann man einen
C-Compiler normalerweise anschauen), legt bei globalen Variablen,
welche in Funktionen verwendet werden manchmal Kopien an, die nicht
immer mit dem Original verglichen werden. Deklariert man die Variable
hingegen als "volatile", dann wird immer auf dem Original operiert.
(Irrtum möglich, aber nicht wahrscheinlich ;-) )

MfG, Daniel

von Trasher (Gast)


Lesenswert?

Danke für diese Info!

Brauche aber dringend ein kleines Beispiel!
Kann mir niemand ein Beispiel in C geben?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.