mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik erklärung über code


Autor: solo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo people,

ich beschäftige mich gerage mit dem Datasheet eines µc, denn ich will 
damit was programmieren. aber einige Beispielcoede , die ich au dem 
Forum und google gefunden habe , sind mir noch nicht klar. deswegen 
brauche ihre Hilfe, die mir bestimmt bestimmt zuguten weg führen könnte.

1. beispiel
/*  Umwandlund alle 100µs mit Timer0 */

// timer0 configuration
  T0LD = 0x1000;  // 4096/40.96MHz = 100us
  T0CON = 0xC0;    // count down
                  // periodic mode



2.beispiel
/* allösen ein interrupt und complement an pin4 alle 50 ms */

int main (void)  {

   T1LD = 0x20000;      // Counter Value
  T1CON = 0xC4;      // Enabled,Periodic,Binary and CLK/16
     IRQ = My_IRQ_Function;    // Specify Interrupt Service Rountine
  IRQEN = GP_TIMER_BIT;    // Enable Timer1 IRQ

  GP4DAT = 0x04000000;  // P4.2 configured as an output. LED is turned 
on

  while (1)
  {
  }
}


meine Frage sind folgendes:

im 1. Beispiel e ist klar dass 4096/40.96Mhz =100µs  .   wie kommt man 
zu den wert 0x1000 der zum T0LD zugewiesen wird?


beim 2. Beispiel  hat man jtzt T1LD=0x20000 wie man auf diesen wert 
gekommen ?

welle kriterien soll man achten beim entscheiden der Prescaler?


bitte um Hilfe, ich neue im bereich und will gerne viel lernen

danke im voraus

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Prozessor ist das?

Ansonsten allgemein erklärt:

Der Timer wird meist vom Prozessortakt gespeist. Dann ist noch ein 
Vorteiler vorhanden, der den Takt etwas lansamer machen kann.

TxLD scheint eine Art Höchstgrenze vorzugeben. Der Timer zählt dann von 
0 bis zu dieser Grenze und fängt danach wieder bei 0 an. Dabei kann auch 
ein Interrupt ausgelöst werden.

Autor: solo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein Prozessor von Analog Device aduc7020

Autor: Gaast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. 0x1000 ist eine Hexadezimalzahl. 0x1000 = 4096

2. 0x20000 = 131.072, 131072 * 16 / 40,960000 MHz = ca. 51,2 ms

Autor: solo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke sehr an alle. das habe ich schon kapiert.

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.