Lad os nedbryde timere i sammenhæng med mikroprocessorer:
hvad er en timer?
En timer er en specialiseret hardwarekomponent i en mikroprocessor (eller ofte, en perifer chip forbundet til mikroprocessoren), der giver en måde at måle tidsintervaller eller udløse begivenheder med specifikke intervaller. I det væsentlige er det som et digitalt stopur, som du kan programmere til at tælle eller op.
Nøglekoncepter:
* tæller: Kernen i en timer er en tæller, der trin (eller redegør) i en bestemt hastighed. Denne hastighed bestemmes typisk af en krystaloscillator, der giver et højfrekvent ursignal.
* Prescaler: Nogle timere inkluderer en prescaler, der deler frekvensen af oscillatoren, før den når tælleren. Dette giver dig mulighed for at justere timerens opløsning (hvor fint den kan måle tid).
* driftsformer: Timere tilbyder ofte forskellige driftsformer, såsom:
* interval timer: Måler en bestemt varighed.
* pulsbredde timer: Måler varigheden af en puls.
* begivenhedstæller: Tæller eksterne begivenheder (som knaptryk).
* afbryder: Mange timere kan generere afbrydelser, når tælleren når en foruddefineret værdi. Dette tillader, at mikroprocessoren får besked, når der er gået et specifikt tidsinterval.
hvordan timere fungerer:
1. Initialisering: Du programmerer timeren ved at indstille dens oprindelige værdi (starttællingen) og dens driftsmåde (interval, pulsbredde osv.).
2. Tælling: Tælleren begynder at tælle ned (eller op) med en hastighed bestemt af urfrekvensen og eventuelle prescaler -indstillinger.
3. Triggering: Når tælleren når en bestemt værdi (timerens "mål"), udløser den en bestemt handling:
* Afbryd: Timeren afbryder mikroprocessoren og signaliserer, at tidsintervallet er gået.
* output signal: Timeren genererer et puls eller andet udgangssignal.
4. Nulstil/genindlæs: Tælleren kan nulstilles (sætter tilbage til sin oprindelige værdi) eller genindlæses med en ny værdi for at starte en anden timingcyklus.
Anvendelser af timere i mikroprocessorer:
Timere er grundlæggende byggesten i indlejrede systemer og har mange applikationer:
* forsinkelsesgenerering: Oprettelse af præcise tidsforsinkelser for opgaver som software, der debuncing, kontrol af LED -blink og planlægning af begivenheder.
* realtidsur (RTCS): Hold styr på den tid og dato.
* Pulsbredde Modulation (PWM): Kontrol af toldcyklus af signaler, der bruges til motorisk kontrol, dæmpning af LED'er og generering af lydbølgeformer.
* Begivenhedstælling: Måling af hyppigheden af eksterne begivenheder som knaptryk, sensoraflæsninger eller kommunikationssignaler.
* System Timing: At sikre opgaver udføres inden for specificerede tidsintervaller i realtidssystemer.
Eksempel:Brug af en timer til en forsinkelse:
`` `
// Initialiser timeren for at tælle fra 1000
timer_init (1000);
// Start timeren
timer_start ();
// Vent, indtil timeren når nul
mens (timer_is_running ()) {
// Gør intet, vent på, at timeren udløber
}
// timeren er udløbet, så nu kan vi gøre noget andet
`` `
Fortæl mig, hvis du gerne vil have flere detaljer i en bestemt timertilstand, afbryd håndtering eller en bestemt applikation!