---- START NEW MESSAGE --- Received: from cherry.ease.lsoft.com [209.119.0.109] by dpmail10.doteasy.com with ESMTP (SMTPD32-8.05) id A084191101E6; Thu, 29 Jan 2004 20:41:40 -0800 Received: from PEAR.EASE.LSOFT.COM (209.119.0.19) by cherry.ease.lsoft.com (LSMTP for Digital Unix v1.1b) with SMTP id <9.00CC3F77@cherry.ease.lsoft.com>; Thu, 29 Jan 2004 23:41:28 -0500 Received: from MITVMA.MIT.EDU by MITVMA.MIT.EDU (LISTSERV-TCP/IP release 1.8e) with spool id 9626 for PICLIST@MITVMA.MIT.EDU; Thu, 29 Jan 2004 23:41:22 -0500 Received: from MITVMA (NJE origin SMTP@MITVMA) by MITVMA.MIT.EDU (LMail V1.2d/1.8d) with BSMTP id 5192; Thu, 29 Jan 2004 23:39:43 -0500 Received: from mail2.speakeasy.net [216.254.0.202] by mitvma.mit.edu (IBM VM SMTP Level 430) via TCP with ESMTP ; Thu, 29 Jan 2004 23:39:42 EST X-Comment: mitvma.mit.edu: Mail was sent by mail2.speakeasy.net Received: (qmail 29698 invoked from network); 30 Jan 2004 04:39:44 -0000 Received: from dsl092-235-245.phl1.dsl.speakeasy.net (HELO [10.10.10.4]) ([66.92.235.245]) (envelope-sender ) by mail2.speakeasy.net (qmail-ldap-1.03) with SMTP for ; 30 Jan 2004 04:39:44 -0000 X-X-Sender: bcouture@pop3.concentric.net MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Message-ID: Date: Thu, 29 Jan 2004 23:41:02 -0500 Reply-To: pic microcontroller discussion list Sender: pic microcontroller discussion list From: Bill Couture Subject: Re: [PIC]: Hitech PICCLITE state machine optimization To: PICLIST@MITVMA.MIT.EDU In-Reply-To: Precedence: list X-RCPT-TO: Status: U X-UIDL: 371856434 On Thu, 29 Jan 2004, Herbert Graf wrote: > For example this is an excerpt of my state machine: > > if ((ISR_state == 7) > || (ISR_state == 8) > || (ISR_state == 9) > || (ISR_state == 10) > || (ISR_state == 11) > || (ISR_state == 12) > || (ISR_state == 13)) > { > if (ISR_charBuf == 0x0d) > ISR_state = 0; > else if (ISR_charBuf == ',') > ISR_state++; > } > > Any ideas as to how I might do the same sort of thing without using so much > code? How about if ((ISR_state > 6) && (ISR_state < 14)) { if (ISR_charBuf == 0x0d) ISR_state = 0; if (ISR_charBuf == ',') /* can't be 0x0d and ',' at the same time */ ISR_state++; } Bill -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details. .