My project is using an LCD and a PIC16F870. I think I need tables of some sort and thought this might be the right direction. I would like to put some LCD messages out based on the conditions of 3 or 4 inputs pins and probably have 2 or 3 output pins besides the LCD out.Originally posted by mister_e
I always prefer to use SELECT CASE. The easy way to get multiple conditions is to refer to the PORT.
By example
Code:SW1 VAR PORTB.0 SW2 VAR PORTB.1 SW2 VAR PORTB.2 MaskSwitch=byte MaskSwitch=PORTB & $07 SELECT CASE MaskSwitch CASE 1 '%00000001 or SW1 Goto Procedure_SW1 CASE 2 '%00000010 or SW2 Goto Procedure_SW2 CASE 4 '%00000100 or SW3 Goto Procedure_SW3 END SELECT
I have a question about your code. I am using the LCD routine and PORTB.3 is being used by it. Let's say I want:
___________________________
MaskSwitch=PORTB & $07
SELECT CASE MaskSwitch
CASE 16 '%00010000 or SW1
Goto Message_1
___________________________
I need an input on PORTB.4. as well as 0-2. Is this feasable or will the that disrupt PORTB.3 in any way and mess up my LCD_Out routine?
Also I would need to have something like CASE 16 but I need to ignore %00010XXX (PORTB 0-2). Do I have to build a case for each of the 3 Bin inputs I want to ignore? I think so, but not sure. Or can I exclude them somehow?
How about a CASE 0 ' or %00000000 ? Is that a valid case?
What's the "& %07" after the PORTB for? Setting the Input/ouptuts on PORTB? How can I do this beyond PORTB.3 without upsetting the LCD routine on PORTB.3 (Enable for the LCD?)?
Appreciated
Ultra new at PBP & Programming
Bookmarks