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
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.
1. 0x1000 ist eine Hexadezimalzahl. 0x1000 = 4096 2. 0x20000 = 131.072, 131072 * 16 / 40,960000 MHz = ca. 51,2 ms
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.