Author Topic: Accelerometer Events  (Read 734 times)

mc-John

  • Global Moderator
  • Full Member
  • *****
  • Posts: 212
    • View Profile
Re: Accelerometer Events
« on: June 25, 2016, 04:50:46 pm »
You found a bug in the compiler. The not (~) makes it an integer but because all parts of the expression are byte it is still correct. This error was introduced in build 889.
If you look in the original list file (in the zip) you can see that it generated correct code (address 392). Now it does not compile  ???


Code: [Select]
000202      Public Function Standby() As Boolean              383:    0x1400   EntryPoint                  ValTypParams=0, RefTypParams=0
                                                              384:    0xF040   AllocateStackSpace          ValTypeSize=2, RefTypeSize=0

000203          Dim dataByte As Byte
000204         
000205          'read status register
000206          dataByte = ReadSingleByte(CTRL_REG1_REG)      385:    0x902A   PushConstU10                42
                                                              386:    0x0081   PushMe                     
                                                              387:    0x2031   BranchSubr                  437
                                                              388:    0xA000   PopLocalI32                 dataByte

000207          'set active bit to put accel in active mode
000208          dataByte = dataByte & ~0x01                   389:    0x9800   PushLocalI32                dataByte
                                                              390:    0x9001   PushConstU10                1
                                                              391:    0x0018   IntNot                     
                                                              392:    0x0062   CvtIntToByt                 
                                                              393:    0x000B   IntAnd                     
                                                              394:    0xA000   PopLocalI32                 dataByte

000209          WriteSingleByte(CTRL_REG1_REG, dataByte)      395:    0x902A   PushConstU10                42
                                                              396:    0x9800   PushLocalI32                dataByte
                                                              397:    0x0081   PushMe                     
                                                              398:    0x2014   BranchSubr                  419
                                                              399:    0xF420   FreeStackSpace              ValTypeSize=1, RefTypeSize=0

000210         
000211          Return True                                   400:    0x0076   Return1                     

000212      End Function                                      401:    0x0075   Return0