mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer2 ???


Autor: Trasher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: dag (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Trasher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: dag (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Trasher (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: raoul4 (Gast)
Datum:

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

mfg raoul4

Autor: Trasher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dag: Nicht vergessen var als volatile zu deklarieren.

Autor: Trasher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Trasher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für diese Info!

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.