1 / 18

Keeping the Sheep Corralled

Keeping the Sheep Corralled. An engineer, a physicist, and a mathematician are shown a pasture with a herd of sheep, and told to put them inside the smallest possible amount of fence.

julie
Download Presentation

Keeping the Sheep Corralled

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Keeping the Sheep Corralled An engineer, a physicist, and a mathematician are shown a pasture with a herd of sheep, and told to put them inside the smallest possible amount of fence. The engineer is first. He herds the sheep into a circle and then puts the fence around them, declaring, "A circle will use the least fence for a given area, so this is the best solution.“ The physicist is next. She creates a circular fence of infinite radius around the sheep, and then draws the fence tight around the herd, declaring, "This will give the smallest circular fence around the herd.“

  2. Keeping the Sheep Corralled The mathematician is last. After giving the problem a little thought, he puts a small fence around himself and then declares, "I define myself to be on the outside!"

  3. Timing, timing, timing … Liquid Crystal Display Embedded Systems Interfacing Laboratory

  4. Overview • Task 1 – Prelab • Task 2 – initPMP & _10usDelay • Task 3 – Instruction Sequence and initLCD • Task 4 – Application • initPMP • initLCD • cmdLCD • putLCD • main

  5. LCD Interface 8-bit Data Bus 3-bit Control Bus

  6. LCD Interface 8-bit Data Bus 3-bit Control Bus

  7. LCD Controller (SK00321) Tianma TM162JCWAG1 16 Cols x 2 Lines SK0032 PIC24FJ128 1 Hitachi HD44780U Compatible Controller/Driver

  8. LCD Controller (S6A00691) Lumex LCD-SO1602 16 Cols x 2 Lines S6A0069 PIC24FJ128 1 Hitachi HD44780U Compatible Controller/Driver

  9. Parallel Master Port (PMP) • Configure • PMCON • PMMODE • PMADDR • PMAEN • See Prelab for suggested bit patterns

  10. Control Signal • R/W’ – Read/Write’ Select Signal • RS – Register Select • 0 = Instruction Register on write and Busy Flag on read • 1 = Data Register on read and write • E – Enable Signal • Check waveforms to make sure your values for WAITB, WAITM, and WAITE meet timing requirements of LCD

  11. WAITB, WAITM, and WAITE • If WAITM = 0b0000, then WAITB and WAITE have no affect • Else WAITM  0b0000, then WAITB, WAITM, and WAITE have an affect E (WAITE+1) x Tcy (WAITB+1) x Tcy WAITM x Tcy Stable

  12. Delays – Task 2 – MPLAB SIM • msDelay – Already in Peripherals.H • Change msDelay scale factor to 333L • _10usDelay(unsigned char n){ unsigned char count; for(count=n*usSCALE;count>0;count--){ asm(“nop”); . . . . . } }

  13. Task 2 MSO Via holes and LCD pins have different signal pin outs. Hello world Check PMP timing against data sheet Explorer-16

  14. Instruction Sequence – Task 3

  15. Instruction Execution Times • Power-On Delay >30 ms (100 ms) • Slow Instructions ( > 1.35 ms) • Clear display • Home cursor • Fast Instructions (> 43 us) • All other commands and data

  16. Functions – Task 3 • initLCD – Initialize LCD • Main • initPMP • initLCD • Endless loop with Nop( )

  17. Warning On Task 4 • Task 3 may have confused the LCD controller • Turn off power to Explorer-16 board. • Turn on power to Explorer-16 board • Debugger | Connect • Reset • Run Reset LCD Controller

  18. Functions – Task 4 • putLCD – send character to LCD • cmdLCD – send new command to LCD • Main • initPMP and initLCD • Endless loop • Send message to display using putLCD • Home cursor or clear display using cmdLCD

More Related