At 04:57 AM 11/15/2006, you wrote: > > //Set page 103 for details regarding the +2 > > tmr0l = (unsigned char)65000; > > tmr0h = (unsigned char)(65000 >> 8); //Right > > shift so the top byte > > becomes the bottom byte > > > > All I'm trying to do is split the 65000 across the > > two variables, tmr0L and > >Doesn't this need to be an unsigned integer (possibly long integer, >depending on default length of integer) because a char is only 8 bits, so >max value is 255 ???? Constants are supposed to be (signed) 'int' by default, and 'long' if they are too big to fit into an 'int'. An 'int' has to hold at least 32767 maximum and a 'long' has to handle at least 2147483647 maximum (as in limits.h) for a compiler to be ANSI compliant. So, his compiler is broken. I'd be tempted to try 65000U to get around the problem, and also to be very suspicious of that particular compiler in the future. Best regards, Spehro Pefhany --"it's the network..." "The Journey is the reward" speff@interlog.com Info for manufacturers: http://www.trexon.com Embedded software/hardware/analog Info for designers: http://www.speff.com ->>Test equipment, parts OLED displys http://search.ebay.com/_W0QQsassZspeff -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist