Andy Jancura wrote: > >O.K. So I'm reading the "B" version note, > >Where is the "A" note? > >Who has "B" version chips, and what do I have since I bought them months > >ago > >and they have neither A or B markings. > > Thomas, chip versions A,B etc. are usual used as marks for new chip layout, > redesign or technology. They are marked on the chip package, like 16F84 and > 16F84A. So far I know, at the time are available only the first versions of > 18Cxx2. > DigiKey now says they have the "A" version. > > Errata sheets revision A,B are written after chip testing, both HW and SW. > And all errors are then reported with possible corrections and work around. > Let see the Atmel AVR errata, for some chips you find versions F,G,H and so. > The last one contains summary of all previous. > > ... > > >I have discovered if you have in interrupt happen while using a MOVFF, > >It may NOT complete the 2 part of the instruction, and when you return > >from interrupt > >You get bogus results... > > Probably if more interrupts running simultaneously, one with higher priority > as the other one. > Not at all! I'm using 16C compatability, ONE level of interrupt. > > > >As Murphy would have it, I'm doing table lookups for a JUMP table and the > >PC get some > >pseudo-random value! > >No, I'm not using MOVFF something, PCL. That's been pointed out as a > >no-no. > >I am using MOVFF something, WREG, which is specifically encouraged in the > >MOVFF > >instruction manual. Well the value in WREG get clobbered by interupts... > >sometimes. > > I think MOVFF fs, fd is primary used for data exchange between two registers > without affecting any status bits. This is usual needed when you need to > transfer some variables to locals and so. Not to transfer to W register. From the manual! "Either source or destination can be WREG..." > > When you need data to be in W reg. you must use the usual way with > > MOVF fs,W,source_bank > > If jump table is needed you cann't use MOVFF for this jumping, expect the > case of fixed address stored in ram: > > Pointer_High, Pointer_Low - targed 16 bit address where to jump stored in > ram > > MOVFF Pointer_High, PCLATH - this transfers only 8 bit from Pointer_High > MOVF Pointer_Low,W,bank_sel - cann't use PCL, then get it via W > MOVWF PCL,bank_0 - jump > > If your addresses are in Program Space, you must use the TBLRD instructionin > to get the 8 data > > set TBLPTR to point to adress of jump > > TBLRD*+ > MOVFF TBLATH, PCLATH AND this is where it FAILS!!! If you get an interrupt at this instruction, it will NOT complete correctly. > > TBLRD* > MOVF TBLATH,W,bank_0 - again cann't use PCL as target in movff > MOVWF PCL,bank_0 > > >I didn't trust the RETFIE FAST to restore W, so I added my own > >save/restore in the > >interrupt service routine. Didn't help either way. > > Did you tried to run with only one interrupt and correct disabled all other. > Then did you setup the interrupt compatibility mode bit? > > Andrej > > _________________________________________________________________________ > Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com. > > Share information about yourself, create your own public profile at > http://profiles.msn.com. > > -- > http://www.piclist.com hint: PICList Posts must start with ONE topic: > "[PIC]:" PIC only "[EE]:" engineering "[OT]:" off topic "[AD]:" ad's -- * | __O Thomas C. Sefranek tcs@cmcorp.com |_-\<,_ Amateur Radio Operator: WA1RHP (*)/ (*) Bicycle mobile on 145.41, 448.625 MHz ARRL Instructor, Technical Specialist, VE Contact. http://hamradio.cmcorp.com/inventory/Inventory.html http://www.harvardrepeater.org -- http://www.piclist.com hint: PICList Posts must start with ONE topic: "[PIC]:" PIC only "[EE]:" engineering "[OT]:" off topic "[AD]:" ad's