PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Interrupt und timer



m0
13.03.2005, 20:17
Hi!
Bin ein totaler Neuling was PICs und solche geschichten angeht únd hätte einige fragen und zwar:
1. kann mir jemand verständlich erklähren was es genau mit
dem "interrupt" aufsich hat bisher dachte ich das sei eine funktion die
ausgeführt wird wenn der PIC nichts zu tun hat aber andscheinend ist
dem nicht ganz so..

2. Ausserdem würde ich die "timer" gerne besser verstehen sehe ich das
richtig: ein timer zählt bei jedem prorgammdurchlauf eine nummer
weiter bis er am max ankommt und fängt dann wieder bei 0 an
wie ist das aber dem timer kann man auch einen wert zuweisen
stimmt das? und: bei z.b.: einem ultraschallsensor habe ich hier
gelesen dass man irgendwie den scan starten soll und dann sobald das
echo kommt nen interrupt machn muss ich verstehe nicht ganz wieso
man da nicht einfach den scan startet, den timer auf 0 setzt und
sobald das echo einen eingang "HIGH" setzt den timer abfragt und
fertig??? und was macht man wenn man zeitspannen messen will
indenen der timer zwischendrin wieder bei 0 anfängt? und wie ist das
kann man unendlich viele timer starten?
3. Dieses INTCON wozu ist das da?
4. weis irgendwer ein gutes einsteigerbuch oder .pdf für PIC
programmierung?

ich weiss fragen über fragen aber ich wäre euch wirklich sehr sehr dankbar für antworten!

vielen Dank
m0

stegr
13.03.2005, 21:41
1.) interrupt = unterbrechen
ein interrupt unterbricht die normale programmausführung und führt den interrupt-code aus. Wenn der fertig ist, wird das normale programm weiter ausgeführt, und zwar genau an der stelle, an der der interrupt unterbrochen hat.

2.) timer: der timer zählt bei jedem maschinenzyklus um eins hoch, irgendwann läuft er über und fängt wieder bei 0 an. Manche timer kannst du vorladen, d.h. ein bestimmter wert ist schon im timer-register drinnen und somit kannst du sehr genau definierte zeiten mit zählen. Du kannst bei bedarf einen sog. Timer-Interrupt aktivieren, so dass beim Überlauf ein Interrupt ausgelöst wird.

3.) Das INTCON-Register ist zum Einstellen der Interrupts da, d.h. welche Interruptquellen verwendet werden sollen (z.B. Timer, ext. Interrupt, RS232). Details dazu findest du im Datenblatt.

4.) deutschsprachiges Buch gibt es kein wirklich gutes, englischsprachige sind aber fast alle auch schon zu alt...
Empfehlen kann ich dir www.sprut.de und www.fernando-heitor.de
Dort findest du schöne Einführungen...

MfG
Stefan

Goblin
13.03.2005, 23:37
Du kannst bei bedarf einen sog. Timer-Interrupt aktivieren, so dass beim Überlauf ein Interrupt ausgelöst wird.

kann man nen timer-interrupt auch auf nen bestimmten timer-wert setzen? oder die überlauf-grenze setzen?

stegr
14.03.2005, 19:19
Die Grenze kannst du nicht setzen, aber du kannst das Zähler-Register vorladen. Das läuft für dich praktisch auf das gleiche raus...