www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel 89S8252


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Ich möchte den Zählerstands des Timers ausgeben. Ist der Quellcode
soweit richtig?

#include <stdio.h>
#include <LCDIO.h>
#include <REG8252.h>

int stand=0;   //globale Variabeln
//Programmfunktionen:
//Zeigt einmal den Zählerstand in HEX an

void test(void) interrupt TF0_VECTOR    //Interrupt
{
  stand=(TH0*256)+TL0;    //High und Low miteinander verknüpfen
}
//interrupt ENDE

//Main
void main(void)
{
  TMOD=0x10;    //Timer Modus festlegen
  ET0=1;      //Timer 0 Interrupt Enable: 1=Enabled
  TR0=1;      //Timer 0 Run Control Bit
  EA=1;        // Global Interrupt Enable, 0=Disable all interrupts
    do
    {
      clrsc();      //Display leeren
      printf(“%x”,stand);    //Ausgabe des Zählerstands
    }
    while(1);
}
//Main ENDE

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Chris,

wenn mich mein 8051-Wissen nicht trügt, so bekommst du immer den
gleichen Wert, weil der Interrupt immer dann ausgelöst wird, wenn der
Timer von 0xFFFF nach 0x0000 überläuft.

Besser wäre es, wenn du bei jedem Interrupt die Variable "Stand"
inkrementierst.

Die Berechnung, in welchen Abständen der Interrupt erfolgt, berechnest
du m.W. aus der Formel fOSC/12*65536. fOSC ist deine Quarzfrequenz.

Man korrigiere mich bitte, wenn ich falsch liege...

Ralf

Autor: Marco Blum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
mit welchem Compiler arbeitest du?
Marco

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite mit Keil u2

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.