Att läsa en manual Exempel Timern ECT_16B8C Läs den allmänna beskrivningen (Overview) Vi ser att grundfunktionen är en räknare med prescaler 1
Läs om speciella egenskaper (Features) I övrigt har vi Input capture (och output compare vilket inte framgår här) Pulsackumulator Modulo nedräknare Delayräknare för brusreducering (ingen grundfunktion) Studera eventuell översiktsfigur (Block diagram) Samma information för alla blocken Samma information för bägge blocken 2
Läs innehållsförteckning För att hitta manualstruktur Samma eller liknande information Det är tydligen något speciellt med OC7 Systemkontroll, något att börja med Ytterligare kontrollregister som man bör se på tidigt och vi ser då att de tillhör output compare Glöm interrupt till att börja med Glöm interrupt till att börja med Hitta struktur forts. Pulsackumulator Modulo nedräknare Funktionsbeskrivningar, lite svårtydda så vi tar dom efter registren 3
Läs innehållsförteckning forts. Glöm interrupt till att börja med Skaffa en överblick över registeruppsättningen Relativt det första timerregistret 4
Skaffa en överblick över registeruppsättningen forts. Skaffa en överblick över registeruppsättningen forts. 5
Vad ger läsning av registret? Vad ger skrivning av registret? Vi börjar med systemkontroll Registeradress relativt det första räknarregistret Biten ger nolla vid läsning Vad innehåller registret efter reset? Registret kan alltid läsas och skrivas Biten är noll efter reset Biten kan inte skrivas Nolla i biten ger Systemkontroll forts. Förklaringar till enskilda registerbitar Etta i biten ger Kommentar 6
Systemkontroll forts. IRQ vid overflow (wrap around) Kan räknaren nollställas? Prescaler Systemkontroll forts. Prescalern gör att räknaren inte uppdateras varje klockcykel utan var annan klockpuls, var fjärde klockpuls etc, dvs vi kan få längre tider men med sämre upplösning 7
Vi går vidare med själva räknaren Läs alla 16 bitar samtidigt Räknaren är free running, dvs den går hela tiden och den kan (normalt) inte skrivas Input capture/output compare Input capture läser och lagrar räknarens värde då något förutbestämt villkor är uppfyllt på aktuell ingång Output compare signalerar då räknaren når något lagrat värde Åtta stycken ben kan konfigureras för input capture eller output compare 8
Villkor för input capture Vi kan trigga input capture på olika sätt Villkor för input capture (forts) Vi kan trigga input capture på olika sätt Kan användas för att mäta periodtid Kan användas för att mäta tid för puls eller pulslucka 9
Vad sker vid output compare Vi kan bestämma vad som skall ske vid en lyckad output compare Vad sker vid output compare forts. Output compare 7 har lite speciella egenskaper som vi inte går in på 10
Register för input capture/output compare Varje input capture/output compare ben har ett 16 bitars register, dvs vi har 8 stycken 16 bitars register Vid input capture läses räknarens värde över till aktuellt register Vid output compare jämförs registerinnehållet med räknarens värde Output compare vid overflow Vi kan få en växlande signal på ett output compare ben då räknaren når overflow, dvs passerar värdet 0xFFFF 11
Pulsackumulator En pulsackumulator används för att räkna totalt antal händelser på ett inben eller för att räkna antalet händelser under en viss tid Vi har två 16 bitars ackumulatorer (A och B) som också kan användas som fyra 8 bitars ackumulatorer (0 till 3) Bara pulsackumulator A kan användas för att räkna händelser under en viss tid Pulsackumulator A 16 bitars pulsackumulator Fungerar oberoende av om timern är aktiverad 12
Pulsackumulator A forts. Räkna händelser eller klockpulser under viss tid? Triggflank Gatenivå Räkna totalt antal flanker Räkna flanker under viss tid Pulsackumulator A forts. Klocka som används då vi räknar flanker under viss tid IRQ vid pulsackumulator overflow IRQ vid varje ny inflank 13
Flaggor för pulsackumulator A Pulsackumulator B 16 bitars puls ackumulator IRQ vid pulsackumulator overflow 14
Flaggor för pulsackumulator B 8 bitars pulsackumulator Pulsackumulator A och B kan delas upp i fyra 8 bitars pulsackumulatorer Bara om pulsackumulator A deaktiverad Bara om pulsackumulator B deaktiverad 15
Pulsackumulatorernas räknarregister Pulsackumulator A och B kan delas upp i fyra 8 bitars pulsackumulatorer Pulsackumulatorernas räknarregister forts. 16
Holdingregister Vid ny input compare händelse eller då modulo nedräknaren når värdet noll eller då värdet noll skrivs till dess räknarregister så läses pulasackumulatorernas värden över till sina holdingregister Vi kan på så sätt spara undan aktuella värden medan input compare eller pulsackumulering fortsätter Kontroll av holdingregister Två parallella ingångar 17
Kontroll av pulsackumulatorernas holdingregister forts. En räknecykel eller wrap around på pulsackumulator Aktivera holdingregister Input capture register överförs till holdingregister Input capture och pulsackumulatorerregister överförs till holdingregister Modulo nedräknare Modulo nedräknaren kan laddas med ett värde och räknar sedan ner till noll varvid den signalerar detta via interrupt Moduloräknar IRQ En nedräkning eller moduloräkning Läs räknar eller laddregister 18
Modulo nedräknare forts. Återstarta moduloräknare Aktivera moduloräknare Prescaler till moduloräkanare Modulo nedräknare forts. Läs alla 16 bitar samtidigt Uppdateras räknaren direkt eller nästa räknecykel? Registret är egentligen två register. Ett laddningsregister och ett aktuellt räknarregister 19
Nu till interrupt Källor för interrupt Räknare Input capture/output compare Pulsackumulator Modulo nedräknare Interrupt från räknare IRQ vid overflow 20
Interrupt från input capture/output compare IRQ vid input capture eller output compare Interrupt från pulsackumulator A IRQ vid overflow IRQ vid ny puls ackumulator insignal 21
Interrupt från pulsackumulator A forts. Interrupt från pulsackumulator B IRQ vid overflow 22
Interrupt från modulo nedräknare IRQ då moduloräknaren når värdet noll Räknarens blockschema Ben i port T 23
8 bitars pulsackumulatorer blockschema Ben i port T 16 bitars pulsackumulatorer blockschema Ben i port T 24
En del specialfunktioner är utelämnade 25