0% found this document useful (0 votes)
77 views28 pages

STM32 Timer & Interrupt Guide

The document outlines the plan for a training day on interruptions, state machines, timers, and peripheral interfaces in STM32 microcontrollers. The agenda includes using interrupts with EXTI pins and callbacks, state machines, timer basics like prescalers and registers, generating PWM and input capture with timers, and practicing code examples for these concepts.

Uploaded by

AHMED BARNAT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views28 pages

STM32 Timer & Interrupt Guide

The document outlines the plan for a training day on interruptions, state machines, timers, and peripheral interfaces in STM32 microcontrollers. The agenda includes using interrupts with EXTI pins and callbacks, state machines, timer basics like prescalers and registers, generating PWM and input capture with timers, and practicing code examples for these concepts.

Uploaded by

AHMED BARNAT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

S T M 3 2 2 .

0
2022/2023
WHAT IS OUR PLAN FOR THE DAY ?
• INTERRUPTION : USE CASE AND IMPLEMENTATION !
• ASYNC INTERRUPT
• STATE MACHINE : CONCEPT AND IMPLEMENTATION.
• TIMER : MUST KNOW REGISTERS !
• TIMER : SYNC INTERRUPT !
• TIMER : PWM
• TIMER : INPUT CAPTURE !
WHAT IS OUR PLAN FOR THE DAY ?
INTERRUPTION :
INTERRUPTION :
INTERRUPTION :
EXTI : HOW ?

• CONFIGURE A GPIO AND EXTI PIN IN STM32CUBEMX AND GENERATE CODE.


• ADD INTO A PROJECT: A CALLBACK FUNCTION, AND A FUNCTION TO TURN ON AN LED.
• VERIFY IT IS WORKING : YOU CAN TOGGLE AN LED WHEN PRESSING THE PUSHBUTTON.
• The push-button is connected to PC13 so that is our target pin !
OKAY, SOME
PRACTICE ?
FAMA HAJA ESMHA NVIC YARROJLA !
FAMA HAJA ESMHA NVIC YARROJLA !
A CALLBACK FUNCTION ?

• WE CAN CALL IT ALSO AN INTERRUPT SERVICE ROUTINE


• THIS FUNCTION WILL BE EXECUTED IF AN INTERRUPTION FLAG IS RAISED
• IN OUR CASE IT IS A RISING OR FALLING EDGE ON PC13 ! (WE CAN DO BOTH RISING AND FALLING)
IMPLEMENTATION :
ALL NEEDED FUNCTIONS CAN BE FOUND :
TYPEDEF ENUM :

• THERE ARE TWO DIFFERENT THINGS GOING ON THERE: A TYPEDEF AND AN ENUMERATED TYPE (AN
"ENUM").

• A TYPEDEF IS A MECHANISM FOR DECLARING AN ALTERNATIVE NAME FOR A TYPE.


• AN ENUMERATED TYPE IS AN INTEGER TYPE WITH AN ASSOCIATED SET OF SYMBOLIC CONSTANTS
REPRESENTING THE VALID VALUES OF THAT TYPE.
1 LED,
3 STATES :
TIMER :
• A TIMER (SOMETIMES REFERRED TO AS A COUNTER) IS A SPECIAL PIECE OF
HARDWARE INSIDE MANY MICROCONTROLLERS. THEIR FUNCTION IS SIMPLE:
THEY COUNT

• YOU CAN APPLY A VARIETY OF SETTINGS TO MOST TIMERS TO CHANGE THE WAY
THEY FUNCTION. THESE SETTINGS ARE USUALLY APPLIED VIA OTHER SPECIAL
FUNCTION REGISTERS INSIDE THE MICROCONTROLLER
TIMER : MAIN FUNCTIONS :
• RUN PERIODIC TASKS
• OUTPUT COMPARE (OC): TOGGLE A PIN WHEN A TIMER REACHES A CERTAIN
VALUE

• PULSE WIDTH MODULATION (PWM): TOGGLE A PIN WHEN A TIMER REACHES A


CERTAIN VALUE AND ON ROLLOVER.

• INPUT CAPTURE (IC): MEASURE THE NUMBER OF COUNTS OF A TIMER BETWEEN


EVENTS ON A PIN
TIMER : MUST KNOW REGISTERS :
• PRESCALER : ALL TIMERS REQUIRE A CLOCK OF SOME SORT. MOST WILL BE
CONNECTED TO THE MICROCONTROLLER’S AHBP BUS (OTHERS, LIKE REAL TIME
CLOCKS, HAVE THEIR OWN CLOCK SOURCES). A TIMER WILL TICK (INCREMENT
BY ONE) EACH TIME IT RECEIVES A CLOCK PULSE.

• COUNTER : IT HAS THE CURRENT VALUE OF THE TIMER


• ARR : DEFINED THE COUNTING PERIOD
TIMER :
MECHANISM
BEHIND :
SYNC INTERRUPT :
• FIRST WE HAVE TO KNOW WHICH BUS IS CONNECTED TO OUR TIMER : CHECK
BLOCK DIAGRAM.

• SET PRESCALER AND ARR TO GET THE REQUIRED FREQUENCY, (TO BE EXPLAINED
ON THE BOARD)

• START YOUR TIMER AND DEFINE YOUR CALLBACK FUNCTION (SEEK HEADER
FILE TO GET THE NAME)
OKAY, SOME PRACTICE ?
SYNC ARR

INTERRUPT :
SOME CODE :
TIMER : PWM GENERATION
• PULSE WIDTH MODULATION MODE ALLOWS TO GENERATE A SIGNAL WITH A
FREQUENCY DETERMINED BY THE VALUE OF THE ARR REGISTER AND A DUTY
CYCLE DETERMINED BY THE VALUE OF THE CCRX REGISTER.

• TIMX_CNT AND TIMX_CCRX ARE ALWAYS COMPARED TO DETERMINE WHETHER


(TIMX_CCRX ≤ TIMX_CNT) OR (TIMX_CNT ≤ TIMX_CCRX) (DEPENDING ON THE
DIRECTION OF THE COUNTER).
• IN INPUT CAPTURE MODE, THE
CAPTURE/COMPARE REGISTERS
(TIMX_CCRX) ARE USED TO HOLD THE
VALUE OF THE COUNTER AFTER A
TRANSITION DETECTED BY THE
CORRESPONDING ICX SIGNAL.

TIMER : INPUT CAPTURE


INPUT CAPTURE :
• THIS MODE IS OFTEN USED TO MEASURE THE FREQUENCY OF A SIGNAL
• WHEN THE FIRST RISING EDGE OCCURS, THE COUNTER VALUE IS RECORDED.
• ANOTHER COUNTER VALUE IS RECORDED AFTER THE SECOND RISING EDGE
OCCURS.

• NOW THE DIFFERENCE BETWEEN THESE 2 COUNTER VALUES IS CALCULATED.


• THE DIFFERENCE IN THE COUNTER VALUES WILL GIVE US THE FREQUENCY.
THATS ALL FOR NOW 

You might also like