Forum: Mikrocontroller und Digitale Elektronik PIC18F4550 timer und ADC problem


von Karl H. (Gast)


Lesenswert?

hi, also ich hätte da ein paar fragen bezüglich des PIC18F4550.

ich wollte nun erstmal fragen, wie ich genau den timer z.b. mal den 
timer2 starten und auch benutzen kann... hab schon gegooglt aber finde 
da irgendwie nichts brauchbares in C...
mit dem timer0 funktionierts mit dem 2er nicht...
bitte schreibt mir mal so eine art democode wie ich den timer2 definiere 
(und benutze aber naja da brauch ich nur die interrupt methode und das 
ist mir eigentlich klar)...


weiters wüsste ich gerne wie ich den ADC ein bzw. ausschalte und benutze
und wie ich z.b. zw. zwei Oszillatoren wechsle, also ich habe einen am 
t10s0/t10s1 und der andere am OSC1/OSC2


mfg

von Zwirbeljupp (Gast)


Lesenswert?

> ich wollte nun erstmal fragen, wie ich genau den timer z.b. mal den
> timer2 starten und auch benutzen kann...
Über den Register T2CON starten.
Den Register TMR2 zum "Benutzen".
Du solltest schon in der Lage sein, das Datenblatt des entsprechenden 
Chips zu finden und zu lesen. Sonst wirst Du Dich mit Deinem Vorhaben 
etwas schwer tun...

> hab schon gegooglt aber finde
> da irgendwie nichts brauchbares in C...
Tja, vielleicht, weil es sich nicht lohnt für die Zeile
1
T2CON = 0x04;
ein Tutorial zu schreiben und hochzuladen?

> mit dem timer0 funktionierts mit dem 2er nicht...
Du schaffst es also, den Timer0 zu konfigurieren und zu benutzen, aber 
nicht Timer2? Soso...

> (und benutze aber naja da brauch ich nur die interrupt methode und das
> ist mir eigentlich klar)...
Was ist denn die "interrupt methode"?

> weiters wüsste ich gerne wie ich den ADC ein bzw. ausschalte und benutze
> und wie ich z.b. zw. zwei Oszillatoren wechsle, also ich habe einen am
> t10s0/t10s1 und der andere am OSC1/OSC2
Das läuft exakt genauso wie die Geschichte mit den Timern: einfach über 
die entsprechenden Register konfigurieren. Wie die im Detail heißen, 
findest Du im Datenblatt.

> bitte schreibt mir mal so eine art democode wie ich den timer2 definiere
Aber gerne, sonst noch Wünsche?


Sorry, aber hier wird Dir niemand Deine Hausaufgaben machen bzw. die 
Infos aus dem Datenblatt heraussuchen. Wenn man an Deiner Fragestellung 
merkt, dass Du Dich bereits mit der Materie intensiv auseinandergesetzt 
hast und Du konkrete Fragen hast, dann wird Dir hier auch gerne 
geholfen.
Aber wenn Du erwartest, dass Dir jemand alles vorkaut, bist Du hier 
falsch.

von Karl H. (Gast)


Lesenswert?

okay mithilfe des datenblatts hab ich das zusammenbekommen....
und es kommen dann ziemlich viele fehler

(T2CON = 0x04;)
TMR2IE = 1;  //interrupt enable
TMR2IF = 0;
TMR2IP = 1; //high oder low priority

von Zwirbeljupp (Gast)


Lesenswert?

Ob Du auf die Bits so zugreifen kannst:
1
TMR2IE = 1;  //interrupt enable
2
TMR2IF = 0;
3
TMR2IP = 1; //high oder low priority
hängt vom Compiler und den Headerfiles ab. Welchen Compiler Du 
verwendest, hast Du aber auch verschwiegen.

Eigentlich liegen die Bits verstreut in den Registern PIR1, IPR1 und 
PIE1 und müssen auch dort gesetzt werden.

Beim C18 würde man z.B. den Interrupt des Timer2 so aktivieren:
1
PIE1bits.TMR2IE = 1;

von Karl H. (Gast)


Lesenswert?

ok, also ja ich benutze den c18 compiler, aber wie finde ich heraus wie 
ich z.b. beim c18 den interrupt aktivieren kann, weil das habe ich z.b. 
im datenblatt von meinem pic nichtgelesen, und werde es dort auch nicht 
finden weil dies ja vom compiler abhängig ist.

gibt es da extra noch ein compiler datenblatt oder wie?

mfg

von Master S. (snowman)


Angehängte Dateien:

Lesenswert?

wenn auch undokumentiert, vielleicht hilft dir das attachment ;-)
ps: lade dir zumindest das aktuelle "MPLAB C18 Libraries.pdf" von 
Microchip runter, das vereinfacht sehr vieles ;-)

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.