This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1294KCPDT: ADC1 sequencer trigger source PWM1 fails & ADCTriggerProcessor Nsh issues.

Guru 55673 points
Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: LM94022, EK-TM4C1294XL,

Configuring PWM0 GEN1 as ADC trigger source (TriggerLoad/zero) counts fails to trigger ADC1 - SS1, SS2, SS3 yet PWM0 GEN0 works to trigger all three sequencers.

Secondly configuring ADC1 SS1, SS2, SS3 trigger source (ADCTriggerProcessor) appears to have an random odd effect upon channel Nsh causing sampled analog count values to mysteriously rapidly increase then decrease back to expected value next cycle. Polling intervals 10ms-1second of ADCTriggerProcessor call triggering SS1, SS2, SS3 start of sample has no effect to reduce random analog count hopping. 

ADCTriggerProcessor used to trigger samples from ADC1 sequencers appear to have uncontrollable errata #09 in ADCTriggerProcessor mode. ADC1 trigger sources SS1-SS3 set PWM_GEN0 stop count hopping of MCU temperature sensor SS3 and other SSn configured for PWM_GEN0. Yet ADC1 still does not respond to PWM_GEN1 being Tivaware configured trigger source. Analog sample jumping (AKA count hopping) condition only occurs when PWM0 peripheral is executing PWM0 trigger count load triggers for any ADC0 sequencers.

  • From the (long past) Stellaris dayze - I recall similar hiccups.     Never fun.

    You exclude SS0 from your, "fails to trigger" inventory!      Does that indicate that (SS0 alone) works - or simply that such data is, "untested/unavailable?"

    Your "ADC1" code block - along w/Source Trigger code - "IF" presented here - enable  (multiple) others to review.

    This sentence (especially) challenges:  

    "ADC1 trigger sources SS1-SS3 set PWM_GEN0 stop count hopping of MCU temperature sensor SS3 and other SSn configured for PWM_GEN0 yet ADC1 still does not respond to PWM_GEN1 being Tivaware configured trigger source."      

    Might a, "Comma or two" or parenthesis - render that  OVERLY LONG Sentence - more "reader friendly?"      We note, "set PWM_GEN0"  AND  (few words later)  "configured for PWM_GEN0" (needlessly) repeat!    (suggesting that (even you) "lost track"  -  surely due to sentence length...)

  • Not perceived long sentences during Reply typing but only after the font size is automatically decreased after posting. That part of posting comments confounds ones perception of length.

    Don't know about ADC1 SS0 (unused) assume it too plagued by Nsh count hopping. BTW: Set is synonymous to configured though some readers fail to make the connection, hence the use of both descriptors. I hate commas people never include them in talking points why then so necessary to type them. So is so over used so now so then so much for that so be it then.

  • cb1_mobile said:

    This sentence (especially) challenges:  

    "ADC1 trigger sources SS1-SS3 set PWM_GEN0 stop count hopping of MCU temperature sensor SS3 and other SSn configured for PWM_GEN0 yet ADC1 still does not respond to PWM_GEN1 being Tivaware configured trigger source."      

    MCU temperature SS3 is an example within the context of the condition being described as binary sets yet does not desire to clarify all SSn uses only that all sequencer triggers were directly linked to the same trigger source. 

  • BP101 said:
    I hate commas people never include them in talking points

    May I - ever (and always) respectfully - strongly disagree?      Of course "Commas are deployed when speaking" - they provide for and insure that the speaker's CADENCE is proper!     The presence of such "pauses" - surely aids listener comprehension - and FAR BETTER ENGAGES  (i.e. Syncs to) the "audience."    (you may wish to search under, "Interactional Synchrony" - so helpful during Sales & relationships...)    

    Run on - all mashed together - monotone drone - minus appropriate pauses & varied inflection  ... Not so much.

    You may wish to "Review (any) Movie Script" - the presence - and number - of such  "Talent Direction" - especially  "speaking guides/prompts" is legendary.     (Our firm SELLS to the Movie & Radio/TV studios)  

    And - we note (sadly) - your "opinion" (only) is (once again) offered up - MINUS (any) interlocked support.     NOT so compelling...

  • Hi BP101,

    Let me try to understand a bit. Is the trigger not working at all or missing trigger events sometimes?

    Each PWM GEN will have two counters (A and B counters). Are you using counter A (Load/Zero) triggers or counter B (Load/Zero triggers? Which counter (A or B) are you using for the PWM generation?

    If you enable both ADC event triggers and event interrupts, will you at least get the interrupt? For example, if you enable Trigger on Load and Interrupt on Load at the same time for counter A, will you at least get the interrupt for Trigger on Load. This way we at least know if the PWM is doing its job to send the trigger signal to the ADC.
  • cb1_mobile said:
    You may wish to "Review (any) Movie Script" - the presence - and number - of such  "Talent Direction" - especially  "speaking guides/prompts" is legendary.     (Our firm SELLS to the Movie & Radio/TV studios)  

    Did not intend to specify Resolved above post comma can not un-resolve that post   period

    Typing a comma is not the same as saying the word comma or so, that is what I referred to anyway  period

  • Oh come on ... surely you MEANT to FULLY "VERIFY/RESOLVE!" (if only for the terrific TAG - noted by > 6 - already...)

    Long LIVE the Comma - and other (necessary) punctuation... (SO Welcome - w/in your writings (complaints) here...)
  • Hi Charles,

    Using Tivaware PWMGenIntTrigEnable() only GEN0 would trigger ADC1 and GEN1 not via (PWMTrCntLoad) alone. ADC1 SSn sample end INTS are working ok. Albeit ADC1 trigger sources set above GEN0 did not have any effect to trigger SSn. Have never tried to use a GENS zero flag to interrupt the ADC being a trigger source, KCPDT MCU. Is it even possible an SSn can start sampling cycles via PWM interrupts or be configured that way?

    Somehow ADCTriggerProcessor() is linked to erratum #09, since hopping no longer remains an issue of MCU temperature sensor samples or LM94022 samples data. The unlikely explanation is the FPU is struggling to preform math calculations when ADCTriggerProcessor triggers any SSn sampling cycles. The WA was to use GEN0 as the SSn trigger source, configuring PWM0 GEN1 could not trigger any SSn of ADC1. Would still like to use ADCTriggerProcessor() since PWM load triggers occur rapidly, well below 10ms of the GPTM calls.

  • Charles Tsai said:
    For example, if you enable Trigger on Load and Interrupt on Load at the same time for counter A, will you at least get the interrupt for Trigger on Load. This way we at least know if the PWM is doing its job to send the trigger signal to the ADC.

    Have long past confirmed PWM0 GEN1 load triggers ADC0 via configurations of EK-TM4C1294XL PWM0 module. Since GEN0 was dedicated to LED-0/1 on launch pad experimenters are forced to used GEN1 of three total. That seems to say (context of thread) ADC1 module can not process count load triggers from GEN1, maybe even GEN2 GEN3. 

  • As the "awardee" of  a "less than whole-hearted"  (Resolve/Verify)  - by this poster - staff & I attempted to replicate his "complaint/findings."

    Poster's  (most current)  issue - for those "late arriving:"  

    "PWM0 GEN1, as ADC trigger source, (TriggerLoad/zero) counts  fails to trigger ADC1 - SS1, SS2, SS3,  yet  "PWM0 GEN0" works!"     (Note the (necessary COMMAS) required for clarity - herein added - along w/poster's erroneous (excess) word (duly struck-out) - again to AID Comprehension...)

    Now we have NO 4C129 boards  (120MHz is SO SLOW - & Display Drive is (pardon) lacking) - thus our effort targeted a "123 LPad."      And ...  we SUCCEEDED!

    Earlier - we requested this poster's "Set-Up & Config Code" - so that beyond (Lone Ranger eyes) - could review.     Such request - denied.

    Follows then - our findings - which enabled our Triggering of  (either)  ADC1 or ADC0 ... by:  ANY PWM Module (either Module 0 or 1) AND by: ANY PWM Generator (Gens: 0, 1, 2, or 3).    Note that this discovery  both MEETS - and (even)  "FAR EXCEEDS" this poster's  (current)  "Help Request."

    The following facts & findings - enabled our success:    (it should be noted - this issue IS (a bit) complex - required (some) digging - to:  Find & effectively/fully resolve!)

    • THREE KEY/CRITICAL Registers must be properly managed - to meet this poster's objectives:  they include: "ADCTSSEL, ADCEMUX, & PWMINTEN1."
    • ADCTSSEL includes FOUR - 2-bit fields - which enable the selection of PWM Generators "0-3" as well as (either) PWM Module "0 or 1"- to generate the ADC Trigger.
    • ADCEMUX  includes FOUR - 4-bit fields - which enable the selection of  PWM Generators "0-3" to serve as ADC Triggers for  ANY  of the  "4 ADC Sample Sequencers.
    • PWMINTEN1  is one of FOUR Registers - required to cause (any) one of  PWM Generators "0-3" to provide the required "ADC Trigger."   ONLY PWMINTEN1 meets poster's requirement!
    • Either ADC0 or ADC1 - may be selected - via choice of the "ADC BASE" - required by Registers:  ADCTSSEL & ADCEMUX.      Thus  "FULL & Total Control" has been delivered...

    Had you missed (even) ONE  - of these CRITICAL (and interlocked) Register "Set-Ups/Configs" - your ADC would NOT have been Triggered!      (Just as you reported!)     Your (earlier) "Report of  (fleeting) Success" - when operating under "PWM0_ GEN0" - resulted as that is the MCU's   "Default Behavior"  - thus escapes the need for,  "FULL  Understanding."

    It should be noted that MUCH "Interlock" is "in play" - and poster should NOT be faulted for (possibly) missing - any of this significant detail...

  • Again the ADC trigger configuration GEN1 is preformed by single Tivaware call and works to trigger ADC0, any sequencer. Perhaps the Tivaware SSn trigger source call is failing to properly set the correct register bits. Otherwise judging from the behavior ADCTriggerProcessor() calls made to ADC1 sequencers also causing random (erratum #09) via any Nhs encoding value it is more likely the module has silicon or timing issues.

    Tivaware calls used to configure ADC1 sequencer to trigger from GEN1 also configured trigger source count load:

    MAP_ADCSequenceConfigure(ADC1_BASE, 1, ADC_TRIGGER_PWM1, 0)
    MAP_PWMGenIntTrigEnable(PWM0_BASE, PWM_GEN_1, PWM_TR_CNT_LOAD);

  • Would it not prove useful for you to inspect those 3 key Registers - which my detailed post highlighted - and insure that your function calls - indeed have succeeded in setting - each/every one of  the appropriate bits?

    You state,  "the ADC trigger configuration "GEN1" is  preformed  (better "performed") by a single Tivaware call.    If true - it is (most) likely that the MCU's "Default Behavior" has been exploited - which is not the case when you seek to deploy,  "PWM_GEN_1" - with the various "Signal Sequencers" - as you past noted.

    The two function calls you  reveal  neglect the (required) "underscores"  (might  "_" suffer the same fate as "Commas?" - which you "hate.")      Note too  those "ADCSequenceConfigure()s" must be repeated - for each sequence you plan to deploy.      In addition - there is (perhaps unexpected) complexity - which the Driver Library's User Guide reveals & details:    (and I import for you, here:)

    "When  ADC_TRIGGER_PWM0,  ADC_TRIGGER_PWM1,  ADC_TRIGGER_PWM2 or ADC_TRIGGER_PWM3  is specified, one of the following should be ORed into ui32Trigger ...  to select the PWM module from which the triggers will be routed for this sequence:
    ADC_TRIGGER_PWM_MOD0 - Selects PWM module 0 as the source of the PWM0 to PWM3 triggers for this sequence.    It is suspected - as your code reveals - that you've (likely) MISSED THIS!

    Your code deployed (only)  "ADC_TRIGGER_PWM1"   (underscores mine)  -  thus the  (directed addition)  "ADC_TRIGGER_PWM_MOD0"  was NOT  "OR'ed into ui32Trigger"   (Param 3)  -  as the "DRL User Guide"  (strongly) directed!

    Note that not all trigger sources are available on all Tiva family members; consult the data sheet for the device in question to determine the availability of triggers.     You've checked this - have you not?

    The ui32Priority parameter is a value between 0 and 3, where 0 represents the highest priority and 3 the lowest.  Note that when programming the priority among a set of sample sequences, each must have unique priority;  it is up to the caller to guarantee the uniqueness of the priorities." This uniqueness of "priorities" - explains our request for your (complete) Set-Up code.    Might this "uniqueness" (too) have been missed?   (indeed - such detail -  WAS "buried.")

    Without doubt - the investigation we  undertook - in your behalf,  "PERFORMS!"    

    As earlier noted - it proves "Universal as well" - as it  ACCEPTS:  

    • ADC0  and  ADC1
    • PWM Module 0  and  Module 1
    • and (any) of the  "four" PWM Generators!      

    Thus proving (very) wide-based...    (and highly FLEXIBLE - thus "Re-Usable" - always highly desired!)

  • cb1_mobile said:
    Your code deployed (only)  "ADC_TRIGGER_PWM1"   (underscores mine)  -  thus the  (directed addition)  "ADC_TRIGGER_PWM_MOD0"  was NOT  "OR'ed into ui32Trigger"   (Param 3)  -  as the "DRL User Guide"  (strongly) directed!

    That is not explicitly to imply one must OR all other ADCx trigger sources to a specific sequencer, ADC0 is not desired here. Other trigger sources can be OR'd if required a sequencer trigger from specific ADCx module/s. Besides the word module in this case refers to GENn of the PWM0 module in the ADCTSSEL (0x1C) PS0-3 bits RESET (0x0) default to module PWM0, no other PWM module is possible.  Tivaware call ADCSequenceConfigure() seems to disagree with datasheet and sets (0x7) GEN1 as the trigger source SS1. When PWM0 is trigger source ADCEMUX (0x14) RESET defaults to TriggerProcesor(0x0) and Tivaware call changes sequencer trigger source to GEN1.

    Register 6: ADC Event Multiplexer Select (ADCEMUX), offset 0x014

    The ADCEMUX selects the event (trigger) that initiates sampling for each sample sequencer. Each sample sequencer can be configured with a unique trigger source.

    RW 0x7 PWM generator 1

    The PWM generator 1 trigger can be configured with the

    PWM1INTEN register (page 1711).

    Tivaware configuration above post is correct to make GEN1 the trigger source of SS1. So I find it hard to understand your point of posting more register information unless specifically for Tivaware programmers.

  • ADC1 -  may be set (exactly) as ADC0.      (it was hoped - the identification of this detail - would motivate your viewing)

    The posts I presented reflected - as clearly stated - our success in achieving:

    • proper operation (to include triggering) of ADC0 and/or ADC1
    • ability to trigger from (either) PWM Module (0 or 1)
    • ability to trigger from (any) PWM Gen (0, 1, 2, 3)

    You ARE welcome...

  • ADC1 is obviously broken in more than just ADCEMUX failures since erratum #09 also inflicts ADC1/SS1 set to trigger by ADCTriggerProcessor.

    That #09 erratum too was inflicting GPTM match counts for the temperatures, randomly jamming the counter.
  • Far to busy with other issues to jump into full debug "many thanks for intense review." Hopefully FE will look into issue Tivaware calls. Surface dug the call and it seems to be addressing the correct registers.
  • cb1_mobile said:

    The posts I presented reflected - as clearly stated - our success in achieving:

    • proper operation (to include triggering) of ADC0 and/or ADC1
    • ability to trigger from (either) PWM Module (0 or 1)
    • ability to trigger from (any) PWM Gen (0, 1, 2, 3)

    Actually your very through tests do not target the specific MCU of post and therefore can not draw any specific conclusion in the reported issue. Gramps would often call that a tit for tat or more properly this for that.

  • I would place a "tall stack" of chips on any  Vegas Table - betting on the correctness of staff's & my (high) effort findings.

    It is (most) doubtful that there is (another) defect w/in this vendor's devices (as you so often report/reach/claim)  - more likely (by FAR) is the, "Inadequacy of your Investigatory Techniques" - which MISSED the "Clear Guidance" - provided by the "Driver Lib User Guide" initially - and (now) disputes our findings - STILL w/out  (your) proper read/review of that (extremely) helpful Guide!

    It is clear - that you've not at all attempted - to deploy my guidance - once again you employ a "reach" - to justify, a Guess or (other) "Non-Effort."

    One notes the number of - and depth - of responses to (this thread) - in your behalf.

    Minus (any) thanks - and (customary) registers of appreciation - "other windmills" await my charge...  (others will surely ...  devote similar time/effort/focus INVESTMENT (in your exclusive behalf) - to meet your (ongoing) tech needs...)

  • I would argue one does not need to investigate so deep as TI experts have already done such for the designer by developing Tivaware. If the Tivaware call to configure the sequencer trigger source is not reliable that would be an argument. Perhaps you should say Tivaware calls can not be trusted to properly configure the ADC1 trigger source.

    Again you clearly avoid my claim registers ADCTSSEL set the sequencer trigger source and TM4C1294 datasheet states PWM0 module POR RESET remains default, no other PWM module is possible even in the Tivaware function. I fail to see any clarity in your posted registers of an entirely different MCU, claimed TM4C123.

    I would also argue your posted Tivaware notes do not all nor properly apply to TM4C1294KCPDT MCU's ADC1 registers.

  • BP101 said:

    Tivaware calls used to configure ADC1 sequencer to trigger from GEN1 also configured trigger source count load:

    MAP_ADCSequenceConfigure(ADC1_BASE, 1, ADC_TRIGGER_PWM1, 0)
    MAP_PWMGenIntTrigEnable(PWM0_BASE, PWM_GEN_1, PWM_TR_CNT_LOAD);

    If the above calls are not showing proper configuration for GEN1 to trigger SS1 that would make for a good counter argument.

    Point is the Tivaware function calls (above) help text and datasheet does not make clear or suggest ORing other PWM modules possible. Again ADC1 sequencers SS0,SS1,SS3 can properly trigger via GEN0 but not GEN1 as posted. It was noted an A+ for the effort posting notes time spent digging etc. is always appreciated but did not help resolve ADC1 architecture issues.

    Unless the MCU's in question are similar versions would it not be a reach to believe they are even remotely the same architecture or follow the same Tivaware programming notes?

  • If designers have to OR the PWM0 default module into Tivaware ADCSequencerConfigure() only for configuring ADC1 sequencers when it does not require PWM0 module OR'd for ADC0 sequencers to properly trigger.

    Argument then becomes the Tivaware function does not comply with the datasheets ADCTSSEL register programming and fails logical and deductive programmatic flow relative to the ADC peripherals configurations. The embedded MACRO has issues not the designer.

    If that is true might it be Tivaware function is reaching beyond insanity, not you or I in that case?
  • Staff/I most always - find it "unwise/risky" to pay, "Inadequate Attention" to the wise counsel - long & deeply embedded - w/in the, "Driver Library User Guide!"

    That you (now) dispute that guidance - is (your) choice - and (perhaps) may account for the, vast number of on-going issues you encounter - as noted here (even) by famed (sporadic) poster, "Source Two."    That he notes your on-going issues - proves telling - does it not?

    You (now) make claim that the "specific registers" I noted - in your behalf - "differ." Yet - as most always - you provide (nothing) beyond opinion. Which registers - charged w/your specific, ongoing problem - differ? Minus that listing - motivation wanes - and your "long/hard" (possibly attention challenged) quest drags on...

    Staff/I had "No reason whatsoever" (beyond trying to assist) to devote time/effort - in your behalf.    We did so as an "exercise" - upon a lesser MCU - and succeeded.    (after intently studying the Driver Lib User Guide and the '123's manual...)

  • cb1_mobile said:
    You (now) make claim that the "specific registers" I noted - in your behalf - "differ." Yet - as most always - you provide (nothing) beyond opinion. Which registers - charged w/your specific, ongoing problem - differ? Minus that listing - motivation wanes - and your "long/hard" (possibly attention challenged) quest drags on...

    You must be working form emails not checked the forum posts. Above provided not 1 but 2 data sheet examples of ADC1 registers ADCTSSEL, ADCEMUX the only two ADCSequenceConfigur() makes any HWREG changes. I might believe the MACRO is doing bizarre things but contrary to the text below there is no need to OR PWM0_MOD0 in this MCU. If the OR'd was so required why does this function set ADC0 trigger sources properly for PWM0 GEN1 but not ADC1? Again ADCTSSEL register 8 Resets (0x0), defaults to the only PWM module possible MOD0 there is no PWM_MOD1. I will test your PWM0 | GEN1 and green several above posts if adding long ass OR name into sequencer call fixes ADC1 issue.  Point is the function is deprecated for this MCU class (snowflake) and needs to be properly rewritten accounting for the default module. Then holds true even the Stellaris group was leaving MOD0 out of calls for ADC0 sequencer configure in BLDC SW provided. 

    //*****************************************************************************
    //
    //! Configures the trigger source and priority of a sample sequence.
    //!
    //! \param ui32Base is the base address of the ADC module.
    //! \param ui32SequenceNum is the sample sequence number.
    //! \param ui32Trigger is the trigger source that initiates the sample
    //! sequence; must be one of the \b ADC_TRIGGER_* values.
    //! \param ui32Priority is the relative priority of the sample sequence with
    //! respect to the other sample sequences.
    //!
    //! This function configures the initiation criteria for a sample sequence.
    //! Valid sample sequencers range from zero to three; sequencer zero captures
    //! up to eight samples, sequencers one and two capture up to four samples,
    //! and sequencer three captures a single sample.  The trigger condition and
    //! priority (with respect to other sample sequencer execution) are set.
    //!
    //! The \e ui32Trigger parameter can take on the following values:
    //!
    //! - \b ADC_TRIGGER_PROCESSOR - A trigger generated by the processor, via the
    //!                              ADCProcessorTrigger() function.
    //! - \b ADC_TRIGGER_COMP0 - A trigger generated by the first analog
    //!                          comparator; configured with ComparatorConfigure().
    //! - \b ADC_TRIGGER_COMP1 - A trigger generated by the second analog
    //!                          comparator; configured with ComparatorConfigure().
    //! - \b ADC_TRIGGER_COMP2 - A trigger generated by the third analog
    //!                          comparator; configured with ComparatorConfigure().
    //! - \b ADC_TRIGGER_EXTERNAL - A trigger generated by an input from the Port
    //!                             B4 pin.  Note that some microcontrollers can
    //!                             select from any GPIO using the
    //!                             GPIOADCTriggerEnable() function.
    //! - \b ADC_TRIGGER_TIMER - A trigger generated by a timer; configured with
    //!                          TimerControlTrigger().
    //! - \b ADC_TRIGGER_PWM0 - A trigger generated by the first PWM generator;
    //!                         configured with PWMGenIntTrigEnable().
    //! - \b ADC_TRIGGER_PWM1 - A trigger generated by the second PWM generator;
    //!                         configured with PWMGenIntTrigEnable().
    //! - \b ADC_TRIGGER_PWM2 - A trigger generated by the third PWM generator;
    //!                         configured with PWMGenIntTrigEnable().
    //! - \b ADC_TRIGGER_PWM3 - A trigger generated by the fourth PWM generator;
    //!                         configured with PWMGenIntTrigEnable().
    //! - \b ADC_TRIGGER_ALWAYS - A trigger that is always asserted, causing the
    //!                           sample sequence to capture repeatedly (so long as
    //!                           there is not a higher priority source active).
    //!
    //! When \b ADC_TRIGGER_PWM0, \b ADC_TRIGGER_PWM1, \b ADC_TRIGGER_PWM2 or
    //! \b ADC_TRIGGER_PWM3 is specified, one of the following should be ORed into
    //! \e ui32Trigger to select the PWM module from which the triggers will be
    //! routed for this sequence:
    //!
    //! - \b ADC_TRIGGER_PWM_MOD0 - Selects PWM module 0 as the source of the
    //!                             PWM0 to PWM3 triggers for this sequence.
    //! - \b ADC_TRIGGER_PWM_MOD1 - Selects PWM module 1 as the source of the
    //!                             PWM0 to PWM3 triggers for this sequence.
    //!
    //! Note that not all trigger sources are available on all Tiva family
    //! members; consult the data sheet for the device in question to determine the
    //! availability of triggers.
    //!
    //! The \e ui32Priority parameter is a value between 0 and 3, where 0
    //! represents the highest priority and 3 the lowest.  Note that when
    //! programming the priority among a set of sample sequences, each must have
    //! unique priority; it is up to the caller to guarantee the uniqueness of the
    //! priorities.
    //!
    //! \return None.
    //
    //*****************************************************************************
    

  • You claim - always the (other guy) or (the MCU) to be, (exclusively) "At Fault."    There are (some) here - who disagree w/such claims...

  • I pray your correct in that assessment otherwise I'm off to see the wizard the wonderful wizard of TI.
  • Forming (very) careful, "Source Supported CONCLUSIONS" - offers the best chance - for Client-User SUCCESS.

    Is such ALWAYS present - w/in your conclusions?    If not - how do you enlist the "Full & Continued" depth of  vendor interest - and  support?

    I have "tried hard to convey such" - both here (forum) and via numerous PMs - as firm/I  "Wish you great success."    (you have persisted here - as have firm/I - beyond 7 years!)
    The "slight success I've enjoyed" (taking tech firm public + "1 %'er status") - most always flowed - from well reasoned - painstaking - and superbly documented (thus defendable) CONCLUSIONS!

    Rarely (never) from wild, "Wish/hope/guess/rapid "read/absorb" ... i.e. REACH!"      (Reach -  a conclusion - without benefit of "portfolio" (supporting facts & documentation).

  • Made no difference as expected to OR (TrigMod0: 0x0000.0000 | TrigPWM1: 0x0000.0007) makes sense if you think about it. The OR does absolutely nothing when the compiler packs the enclosed statement.

    Perhaps some like to though crap at the wall and see if it slips off, well it hit the floor running...
  • BP101 said:
    Perhaps some like to though crap at the wall

    You remain (near) homonym - AND - Analog Comparator - challenged! One "throws" blank at the wall - yet if one "FAILS to grasp the DIFFERENCES between ANALOG & DIGITAL COMPARATORS - then the mistaken use of "though" is (easily) understandable.

    I cede your "rescue" to others here - it is (their) turn to "have fun."