190 likes | 302 Views
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.
E N D
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.“
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!"
Timing, timing, timing … Liquid Crystal Display Embedded Systems Interfacing Laboratory
Overview • Task 1 – Prelab • Task 2 – initPMP & _10usDelay • Task 3 – Instruction Sequence and initLCD • Task 4 – Application • initPMP • initLCD • cmdLCD • putLCD • main
LCD Interface 8-bit Data Bus 3-bit Control Bus
LCD Interface 8-bit Data Bus 3-bit Control Bus
LCD Controller (SK00321) Tianma TM162JCWAG1 16 Cols x 2 Lines SK0032 PIC24FJ128 1 Hitachi HD44780U Compatible Controller/Driver
LCD Controller (S6A00691) Lumex LCD-SO1602 16 Cols x 2 Lines S6A0069 PIC24FJ128 1 Hitachi HD44780U Compatible Controller/Driver
Parallel Master Port (PMP) • Configure • PMCON • PMMODE • PMADDR • PMAEN • See Prelab for suggested bit patterns
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
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
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”); . . . . . } }
Task 2 MSO Via holes and LCD pins have different signal pin outs. Hello world Check PMP timing against data sheet Explorer-16
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
Functions – Task 3 • initLCD – Initialize LCD • Main • initPMP • initLCD • Endless loop with Nop( )
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
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