Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:courses:microprocessor-io-lab-1b:start [2017/05/31 19:37] – [Listing 7.2. Software Time Delay] brandon marcumlearn:courses:microprocessor-io-lab-1b:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 20: Line 20:
   - How to write a computer program using the [[http://www.tutorialspoint.com/cprogramming/index.htm|C language]].   - How to write a computer program using the [[http://www.tutorialspoint.com/cprogramming/index.htm|C language]].
   - How to launch a [[http://microchip.wikidot.com/tls0101:design-environment|Microchip MPLAB X]] project.   - How to launch a [[http://microchip.wikidot.com/tls0101:design-environment|Microchip MPLAB X]] project.
-  - How to configure the PIC32 I/O pins for digital input and output (See [[https://reference.digilentinc.com/learn/courses/microprocessor-io-lab-1a/start|Lab 1a]]).+  - How to configure the PIC32 I/O pins for digital input and output (See [[/learn/courses/microprocessor-io-lab-1a/start|Lab 1a]]).
  
  
Line 30: Line 30:
 ===== 3. Equipment List ===== ===== 3. Equipment List =====
 ==== 3.1. Hardware ==== ==== 3.1. Hardware ====
-  - [[http://store.digilentinc.com/basys-mx3-pic32mx-trainer-board-recommended-for-embedded-systems-courses/|Basys MX3 trainer board]] +  - [[https://digilent.com/shop/basys-mx3-pic32mx-trainer-board-for-embedded-systems-courses/|Basys MX3 trainer board]] 
-  - [[http://store.digilentinc.com/usb-a-to-micro-b-cable/|Standard USB A to micro-B cable]]+  - [[https://digilent.com/shop/usb-a-to-micro-b-cable/|Standard USB A to micro-B cable]]
   - Workstation computer running Windows 10 or higher, MAC OS, or Linux   - Workstation computer running Windows 10 or higher, MAC OS, or Linux
  
Line 127: Line 127:
  
 ==== 7.5. Persistence: Lighting the 7-Segment Display ==== ==== 7.5. Persistence: Lighting the 7-Segment Display ====
-The display in Fig. 8.2 appears to have LED segments in three digits simultaneously displayed. As just discussed, the cathodes of all four of the 7-segment LEDs are connected in parallel and the particular digit is selected by asserting the common anode pin high. In order to make the 4-digit display appear that all four LED digits are simultaneously on, one should make sure each digit is displayed for a minimum of 1 millisecond. Listing 7.2 provides a simple software delay. Since this delay is dependent on the speed of execution, the “ms_cnt” will need to be changed depending on the speed of the core frequency. For the example shown in Listing 7.2, the ms_cnt value of 1000 is set to generate a one ms delay when the core frequency is set to 80 MHz.+The display in Fig. 8.2 appears to have LED segments in three digits simultaneously displayed. As just discussed, the cathodes of all four of the 7-segment LEDs are connected in parallel and the particular digit is selected by asserting the common anode pin high. In order to make the 4-digit display appear that all four LED digits are simultaneously on, one should make sure each digit is displayed for a minimum of 1 millisecond. Listing 7.2 provides a simple software delay. Since this delay is dependent on the speed of execution, the “ms_cnt” will need to be changed depending on the speed of the core frequency. For the example shown in Listing 7.2, the ms_cnt value of 10000 is set to generate a one ms delay when the core frequency is set to 80 MHz.
  
 ---- ----
Line 244: Line 244:
     - Consider the case when pin RF0 is programmed to be an input and the signal TRIG_1 is a digital output signal from an external device that is either 0 or 3.3V. What effect will pressing the BTNC button have on the processor RF0 pin when TRIG_1 is low and when it is high?     - Consider the case when pin RF0 is programmed to be an input and the signal TRIG_1 is a digital output signal from an external device that is either 0 or 3.3V. What effect will pressing the BTNC button have on the processor RF0 pin when TRIG_1 is low and when it is high?
     - Consider the case when pin RF0 is programmed to be an output and the signal TRIG_1 is a digital input signal to an external device. What effect will pressing the BTNC button have on the TRIG_1 signal when the RF0 output is low and when it is high?     - Consider the case when pin RF0 is programmed to be an output and the signal TRIG_1 is a digital input signal to an external device. What effect will pressing the BTNC button have on the TRIG_1 signal when the RF0 output is low and when it is high?
-  - Measure the loop execution time by toggling Pmod connector JA pin 1 at the start of the loop execution using the instruction LATCINC = 0x04. Connect a logic analyzer or oscilloscope probe to JA pin 1 and the ground or common connector to JA pin 5. The loop time is one half the period of the square wave generated at JA pin 1.  +  - Measure the loop execution time by toggling Pmod connector JA pin 1 at the start of the loop execution using the instruction LATCINV = 0x04. Connect a logic analyzer or oscilloscope probe to JA pin 1 and the ground or common connector to JA pin 5. The loop time is one half the period of the square wave generated at JA pin 1.  
     - What is this time?      - What is this time? 
     - Is this time expected?     - Is this time expected?