Podcast
Questions and Answers
What is the function of the TMR0ON bit in the T0CON register?
What is the function of the TMR0ON bit in the T0CON register?
Which bit in the T0CON register specifies whether Timer0 operates in 8-bit or 16-bit mode?
Which bit in the T0CON register specifies whether Timer0 operates in 8-bit or 16-bit mode?
If T0SE is set to 1, what type of transition will cause Timer0 to increment?
If T0SE is set to 1, what type of transition will cause Timer0 to increment?
What happens when the PSA bit in the T0CON register is set to 1?
What happens when the PSA bit in the T0CON register is set to 1?
Signup and view all the answers
In which configuration does Timer2 differ from Timer0?
In which configuration does Timer2 differ from Timer0?
Signup and view all the answers
What is the primary function of an interrupt in a microprocessor?
What is the primary function of an interrupt in a microprocessor?
Signup and view all the answers
Which type of interrupt cannot be disabled?
Which type of interrupt cannot be disabled?
Signup and view all the answers
What is the function of the TMR1CS bit in the T1CON register?
What is the function of the TMR1CS bit in the T1CON register?
Signup and view all the answers
How does the processor identify which interrupt service routine to execute?
How does the processor identify which interrupt service routine to execute?
Signup and view all the answers
What must be the last instruction in an Interrupt Service Routine?
What must be the last instruction in an Interrupt Service Routine?
Signup and view all the answers
Which bit in the T2CON register is used to enable Timer2?
Which bit in the T2CON register is used to enable Timer2?
Signup and view all the answers
What is the effect of setting the T1RUN bit in the T1CON register?
What is the effect of setting the T1RUN bit in the T1CON register?
Signup and view all the answers
What advantage do interrupts provide for multitasking?
What advantage do interrupts provide for multitasking?
Signup and view all the answers
What does a TMR2IF value of 1 indicate?
What does a TMR2IF value of 1 indicate?
Signup and view all the answers
In which situation would a software interrupt typically be used?
In which situation would a software interrupt typically be used?
Signup and view all the answers
How is the prescaler for Timer2 configured in the T2CON register?
How is the prescaler for Timer2 configured in the T2CON register?
Signup and view all the answers
What does the processor do when it receives an interrupt request?
What does the processor do when it receives an interrupt request?
Signup and view all the answers
What is the purpose of an interrupt vector in an interrupt process?
What is the purpose of an interrupt vector in an interrupt process?
Signup and view all the answers
What does the bit T0ON in the T0CON register control?
What does the bit T0ON in the T0CON register control?
Signup and view all the answers
Which prescale value corresponds to the T0PS bits set to 110?
Which prescale value corresponds to the T0PS bits set to 110?
Signup and view all the answers
What is the effect of setting the TMR0IE bit to 1?
What is the effect of setting the TMR0IE bit to 1?
Signup and view all the answers
What does the T1CKPS1:T1CKPS0 bits in the T1CON register control?
What does the T1CKPS1:T1CKPS0 bits in the T1CON register control?
Signup and view all the answers
When TMR1CS is set to 1, what is the role of the T1SYNC bit?
When TMR1CS is set to 1, what is the role of the T1SYNC bit?
Signup and view all the answers
What is the consequence of setting the T1OSCEN bit to 0 in the T1CON register?
What is the consequence of setting the T1OSCEN bit to 0 in the T1CON register?
Signup and view all the answers
What happens when the TMR0IF flag is set to 1?
What happens when the TMR0IF flag is set to 1?
Signup and view all the answers
Which of the following statements is true regarding the RD16 bit in the T1CON register?
Which of the following statements is true regarding the RD16 bit in the T1CON register?
Signup and view all the answers
What happens when the GIE/GIEH bit is set to 0 and IPEN is 0?
What happens when the GIE/GIEH bit is set to 0 and IPEN is 0?
Signup and view all the answers
In the context of the INTCON register, what does a 1 in the TMR0IE bit indicate?
In the context of the INTCON register, what does a 1 in the TMR0IE bit indicate?
Signup and view all the answers
If the PEIE/GIEL bit is set to 0 when IPEN is 0, what is its effect?
If the PEIE/GIEL bit is set to 0 when IPEN is 0, what is its effect?
Signup and view all the answers
What is indicated by a 1 in the RBIF bit of the INTCON register?
What is indicated by a 1 in the RBIF bit of the INTCON register?
Signup and view all the answers
What does the INT0IE bit control in the INTCON register?
What does the INT0IE bit control in the INTCON register?
Signup and view all the answers
When the INTEDG0 bit is set to 1, what type of interrupt will be generated for INT0?
When the INTEDG0 bit is set to 1, what type of interrupt will be generated for INT0?
Signup and view all the answers
In the INTCON2 register, what does the RBIP bit indicate?
In the INTCON2 register, what does the RBIP bit indicate?
Signup and view all the answers
What does a value of 1 in the INT1IE bit signify in the INTCON3 register?
What does a value of 1 in the INT1IE bit signify in the INTCON3 register?
Signup and view all the answers
Regarding the INTCON3 register, what does the INT1IP bit control?
Regarding the INTCON3 register, what does the INT1IP bit control?
Signup and view all the answers
What should be done with the TMR0IF flag after it indicates that the TMR0 register has overflowed?
What should be done with the TMR0IF flag after it indicates that the TMR0 register has overflowed?
Signup and view all the answers
Study Notes
Timer0 Control Register (T0CON)
- TMR0ON: Enables or disables Timer0. A value of 1 enables the timer.
- T08BIT: Determines Timer0's operating mode: 0 for 16-bit mode, 1 for 8-bit mode.
- T0SE: Controls Timer0's increment trigger. A value of 1 means Timer0 increments on a rising edge.
- PSA: When set to 1, it disables the prescaler for Timer0, allowing the timer to operate directly from the system clock.
Timer2 Configuration
- Timer2 operates differently from Timer0 in that it uses a dedicated prescaler, allowing for greater flexibility in timing.
Interrupts
- Interrupt is a hardware-triggered event that suspends the current program execution to execute another program called an interrupt service routine (ISR).
- Non-maskable interrupt (NMI) is a critical interrupt that cannot be disabled.
- TMR1CS: In the T1CON register, it determines the clock source for Timer1. A value of 0 selects the internal instruction cycle clock, while a value of 1 uses an external clock.
Interrupt Handling
- The processor identifies the ISR to execute based on the interrupt vector table.
- Every ISR must end with a return instruction (RETFIE) to resume the interrupted program.
Timer2 Control Register (T2CON)
- TMR2ON: Enables or disables Timer2. A value of 1 enables the timer.
Timer1 Control Register (T1CON)
- T1RUN: When set to 1, enables Timer1, allowing it to start counting.
Advantages of Interrupts
- Interrupts can be used for multitasking, enabling the processor to handle multiple tasks concurrently without explicitly switching between them.
Flags
- TMR2IF: A value of 1 in the TMR2IF flag indicates that Timer2 has overflowed.
Software Interrupts
- A software interrupt is usually used to call an ISR voluntarily to perform specific tasks, such as debugging or handling special events.
Prescaler Configuration
- The Timer2 prescaler is configured using the T2CKPS1 and T2CKPS0 bits in the T2CON register.
Interrupt Process
- When the processor receives an interrupt request, it first pushes the current program counter (PC) and status register (STATUS) onto the stack.
- Interrupt vector is a table that contains the addresses of different ISR routines, providing a mapping between the interrupt source and the corresponding ISR.
Additional Timer0 Details
- T0ON: Controls the enabling and disabling of Timer0.
- T0PS: The prescaler value depends on the configuration of the T0PS bits. 110 corresponds to a prescaler of 64.
- TMR0IE: Setting this bit to 1 enables the Timer0 overflow interrupt, triggering an interrupt when Timer0 overflows.
Additional Timer1 Details
- T1CKPS1:T1CKPS0: These bits control the prescaler settings for Timer1, allowing for different time intervals.
- T1SYNC: When TMR1CS is set to 1, this bit ensures clock synchronization for external clock operation.
- T1OSCEN: Setting it to 0 disables the external oscillator for Timer1, stopping the timer.
Interrupt Handling Flags
- TMR0IF: A value of 1 in this flag indicates that the Timer0 register has overflowed.
RD16 Bit in T1CON
- RD16: This bit allows for the selection of 16-bit or 8-bit read operations for Timer1.
Interrupt Enable and Disable
- GIE/GIEH: Setting it to 0 disables global interrupts, preventing any interrupts from being processed.
- IPEN: If IPEN is set to 0, then setting PEIE/GIEL to 0 disables peripheral interrupts, making them inactive.
INTCON Register Details
- TMR0IE: A value of 1 in this bit enables the Timer0 overflow interrupt.
- RBIF: A value of 1 in this bit indicates that a change has occurred on the RBx pin, triggering an interrupt.
INTCON Register Details (cont.)
- INT0IE: This bit enables or disables the external interrupt on INT0.
- INTEDG0: A value of 1 in this bit indicates a rising edge interrupt for INT0.
INTCON2 Register Details
- RBIP: This bit indicates the priority level for the external interrupt on RBx pins.
INTCON3 Register Details
- INT1IE: A value of 1 in this bit enables the external interrupt on INT1.
- INT1IP: This bit controls the priority level for the external interrupt on INT1.
Overflow Handling
- When the TMR0IF flag indicates that Timer0 has overflowed, it must be cleared to enable future overflow interrupts. This is usually done by setting the flag to "0".
Interrupt
- Is a signal sent by peripheral devices to the microprocessor to gain its immediate attention
- Processor temporarily stops the current program execution to cater to the interruption
Hardware Interrupt
- Initiated by other peripherals
- Non-Maskable interrupt - cannot be disabled
- Maskable interrupt
- External peripheral sources
- Internal peripheral sources
Software Interrupt
- Instructions that direct the processor during an unusual situation
Interrupt Benefits
- Enhanced efficiency: allows the microprocessor to manage multiple tasks simultaneously without having to constantly check if an event has occurred
- Real-time response: allows the microprocessor to react promptly to time-sensitive events
- Flexibility: Enables the implementation of various system functions, such as input/output operations, error handling, and multitasking
How the Processor Attends an Interrupt
- If enabled, the processor checks for interrupt requests before the end of each instruction execution
- Upon an interrupt, the processor completes the current instruction, saves the address of the next instruction onto the stack, and jumps to a special address known as the interrupt vector
- The interrupt service routine (ISR) is executed
- The processor identifies the peripheral that triggered the interrupt and executes the related ISR
- "Return from Interrupt (RETFIE)" instruction is used instead of the typical Return instruction
Interrupt Context Saving in PIC18
- Critical registers are affected by the ISR instructions
- These may need to be saved or restored in order to keep the main program running as intended
INTCON Register
- Global Interrupt Enable/High Priority Interrupt Enable (GIE/GIEH): controls global and high priority interrupt enable
- Peripheral Interrupt Enable/Low Priority Interrupt Enable (PEIE/GIEL): controls peripheral and low priority interrupt enable
- Timer0 Overflow Interrupt Enable (TMR0IE): enables or disables timer0 overflow interrupt
- INT0 External Interrupt Enable (INT0IE) : enables or disables external interrupt 0
- RB Port Change Interrupt Enable (RBIE): enables or disables the RB Port change interrupt.
- Timer0 Overflow Interrupt Flag (TMR0IF): indicates if a Timer0 overflow occurred. needs to be cleared in software.
- INT0 External Interrupt Flag (INT0IF): indicates if the external interrupt 0 occurred. needs to be cleared in software.
- RB Port Change Interrupt Flag (RBIF): indicates if a change has occurred on RB7 to RB4 pins. needs to be cleared in software.
INTCON2 Register
- INTEDG0, INTEDG1, INTEDG2: Interrupt edge select bits (falling or rising edge)
- TMR0IP: Timer0 Interrupt Priority bit (0 = Low, 1 = High)
- RBIP: PortB Change Interrupt Priority bit (0 = Low, 1 = High)
INTCON3 Register
- INT2IP, INT1IP: Interrupt 2 and 1 priority bits (0 = Low, 1 = High)
- INT2IE, INT1IE: Interrupt 2 and 1 enable bits (0 = disabled, 1 = enabled)
- INT2IF, INT1IF: Interrupt 2 and 1 flag bits (0 = no interrupt, 1 = interrupt occurred)
PIC18 Timers
- Timer0: 8/16-bit up counter; interrupt on overflow; selectable clock source; prescaler
- Timer1: 16-bit up counter; interrupt on overflow; selectable clock source; prescaler
- Timer2: 8-bit up counter with period comparators; prescaler and postscaler; interrupt on TMR2 to PR2 match
- Timer3: Similar to Timer1
T0CON Register
- TMR0ON: Timer0 on/off control bit (1 = enabled, 0 = disabled)
- T08BIT: Timer0 8-bit/16-bit control bit (1 = 8-bit, 0 = 16-bit)
- T0CS: Timer0 clock source select bit (1 = T0CKI pin, 0 = internal instruction cycle clock)
- T0SE: Timer0 source edge select bit (1 = high-to-low transition, 0 = low-to-high transition)
- PSA: Timer0 prescaler assignment bit (1 = not assigned, 0 = assigned)
- T0PS2:T0PS0: Timer0 prescaler select bits (determines prescaler value)
Interrupt in Timer0
- Flag bit: TMR0IF (bit 2 of INTCON Register; 1 = interrupt on overflow)
- Priority bit: TMR0IP (bit 2 of INTCON2 Register; 1 = high priority)
- Enable bit: TMR0IE (bit 5 of INTCON Register; 1 = timer0 interrupt enable)
T1CON Register
- RD16: 16-Bit Read/Write Mode Enable bit (1 = enables 16-bit read/write, 0 = enables 8-bit read/write)
- T1RUN: Timer1 System Clock Status bit (READ-ONLY; 1 = Timer1 oscillator, 0 = other source).
- T1CKPS1:T1CKPS0: Timer1 Input Clock Prescale Select bits (determines prescaler value)
- T1OSCEN: Timer1 Oscillator Enable bit (1 = enabled, 0 = disabled)
- T1SYNC: Timer1 External Clock Input Synchronization Select bit (controls synchronization of external clock input)
- TMR1CS: Timer1 Clock Source Select bit (1 = external clock, 0 = internal clock)
- TMR1ON: Timer1 On bit (1 = enabled, 0 = disabled)
Interrupt in Timer1
- Flag bit: TMR1IF (bit 0 of PIR1 Register; 1 = interrupt on overflow)
- Priority bit: TMR1IP (bit 0 of IPR1 Register; 1 = high priority)
- Enable bit: TMR1IE (bit 0 of PIE1 Register; 1 = interrupt enable)
T2CON Register
- T2OUTPS3:T2OUTPS0: Timer2 Output Postscale Select bits (determines postscaler value)
- TMR2ON: Timer2 On bit (1 = enabled, 0 = disabled)
- T2CKPS1:T2CKPS0: Timer2 Clock Prescale Select bits (determines prescaler value)
Interrupt in Timer2
- Flag bit: TMR2IF (bit 1 of PIR1 Register; 1 = interrupt on TMR2 and PR2 match)
- Priority bit: TMR2IP (bit 1 of IPR1 Register; 1 = high priority)
- Enable bit: TMR2IE (bit 1 of PIE1 Register; 1 = interrupt enable)
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Test your knowledge on the T0CON register related to Timer0. This quiz covers various functions of bits within T0CON like TMR0ON, PSA, and mode selection. Prepare to understand how these configurations affect timer operations.