That makes perfect sense. Thanks Bas! On Monday, June 30, 2014 4:27:47 PM UTC-7, Bas Laarhoven wrote: > > > Michael, > > Look at it this way: The data type is always 32 bits. (1<<3) or 0x00000008 > can be used as 8-bit number without data loss. ~(1<<3) or 0xFFFFFFF7 can't > be used as an 8-bit number without data loss. If you keep this in mind when > coding you'll be safe. > > The assembler is rather simple in parsing the input. It probably just > compares the parsed 32-bit result with the allowed range (0-255). > > -- Bas > > > > On 1-7-2014 1:02, Michael M wrote: > > Hi Bas, > > You are right! The following works: > AND r3.b0, r3.b0, (~(1<<3) & 0xff) // Clear bit 3 > > It's strange that (1<<3) is interpreted as 8-bit, but ~(1<<3) is > interpreted as 32-bit. It appears to be an undocumented quirk of using this > operator? Thanks for your help! > > On Monday, June 30, 2014 2:33:51 PM UTC-7, Bas Laarhoven wrote: >> >> >> Hi, >> >> Have you tested masking the ~(1<<3) to 8-bits ? It's possible that the >> assembler sees a 32-bit constant where only an 8-bit value is allowed. >> >> -- Bas >> >> >> On 30-6-2014 22:04, Michael M wrote: >> >> Hello, >> >> I've written a PRU program which manipulates bits in one of the >> registers. The program does not compile with PASM when I use the ~ operator. >> >> Setting multiple bits works: >> >> or r3.b0, r3.b0, 1<<3 // Set bit 3 >> >> >> but clearing multiple bits does not: >> >> and r3.b0, r3.b0, ~(1<<3) // Clear bit 3 >> >> >> The exact compiler error is " Error: Syntax error in parameter 3". This >> should work since it comes straight from the TI wiki on the PRU: >> http://processors.wiki.ti.com/index.php/PRU_Assembly_Instructions#Bitwise_AND_.28AND.29 >> >> Is this a bug or am I doing something wrong? >> >> Thanks, >> Michael >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- > For more options, visit http://beagleboard.org/discuss > --- > You received this message because you are subscribed to the Google Groups > "BeagleBoard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > >
-- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
