@@ -455,9 +455,210 @@ ADS1x1x_SetMux(ADS1x1x_Handler_t *Handler, ADS1x1x_Mux_t Mux)
455
455
if (ADS1x1x_WriteConfigurationRegister (Handler , ConfigReg ) < 0 )
456
456
return ADS1X1X_FAIL ;
457
457
458
+ return ADS1X1X_OK ;
459
+ }
460
+
461
+ /**
462
+ * @brief Set Comparator mode
463
+ * @param Handler: Pointer to handler
464
+ * @param CompMode: Specify Comparator mode
465
+ * @retval ADS1x1x_Result_t
466
+ * - ADS1X1X_OK: Operation was successful.
467
+ * - ADS1X1X_FAIL: Failed to send or receive data.
468
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
469
+ */
470
+ ADS1x1x_Result_t
471
+ ADS1x1x_SetCompMode (ADS1x1x_Handler_t * Handler , ADS1x1x_CompMode_t CompMode )
472
+ {
473
+ uint16_t ConfigReg = 0 ;
474
+
458
475
if (ADS1x1x_ReadConfigurationRegister (Handler , & ConfigReg ) < 0 )
459
476
return ADS1X1X_FAIL ;
460
477
478
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_OS );
479
+ switch (CompMode )
480
+ {
481
+ case ADS1X1X_COMP_MODE_TRADITIONAL :
482
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_MODE );
483
+ break ;
484
+
485
+ case ADS1X1X_COMP_MODE_WINDOW :
486
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_MODE );
487
+ break ;
488
+
489
+ default :
490
+ return ADS1X1X_INVALID_PARAM ;
491
+ break ;
492
+ }
493
+
494
+ if (ADS1x1x_WriteConfigurationRegister (Handler , ConfigReg ) < 0 )
495
+ return ADS1X1X_FAIL ;
496
+
497
+ return ADS1X1X_OK ;
498
+ }
499
+
500
+ /**
501
+ * @brief Set Comparator polarity
502
+ * @param Handler: Pointer to handler
503
+ * @param CompPol: Specify Comparator polarity
504
+ * @retval ADS1x1x_Result_t
505
+ * - ADS1X1X_OK: Operation was successful.
506
+ * - ADS1X1X_FAIL: Failed to send or receive data.
507
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
508
+ */
509
+ ADS1x1x_Result_t
510
+ ADS1x1x_SetCompPol (ADS1x1x_Handler_t * Handler , ADS1x1x_CompPol_t CompPol )
511
+ {
512
+ uint16_t ConfigReg = 0 ;
513
+
514
+ if (ADS1x1x_ReadConfigurationRegister (Handler , & ConfigReg ) < 0 )
515
+ return ADS1X1X_FAIL ;
516
+
517
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_OS );
518
+ switch (CompPol )
519
+ {
520
+ case ADS1X1X_COMP_POL_LOW :
521
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_POL );
522
+ break ;
523
+
524
+ case ADS1X1X_COMP_POL_HIGH :
525
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_POL );
526
+ break ;
527
+
528
+ default :
529
+ return ADS1X1X_INVALID_PARAM ;
530
+ break ;
531
+ }
532
+
533
+ if (ADS1x1x_WriteConfigurationRegister (Handler , ConfigReg ) < 0 )
534
+ return ADS1X1X_FAIL ;
535
+
536
+ return ADS1X1X_OK ;
537
+ }
538
+
539
+ /**
540
+ * @brief Set Comparator latch
541
+ * @param Handler: Pointer to handler
542
+ * @param CompLat: Specify Comparator latch
543
+ * @retval ADS1x1x_Result_t
544
+ * - ADS1X1X_OK: Operation was successful.
545
+ * - ADS1X1X_FAIL: Failed to send or receive data.
546
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
547
+ */
548
+ ADS1x1x_Result_t
549
+ ADS1x1x_SetCompLat (ADS1x1x_Handler_t * Handler , ADS1x1x_CompLat_t CompLat )
550
+ {
551
+ uint16_t ConfigReg = 0 ;
552
+
553
+ if (ADS1x1x_ReadConfigurationRegister (Handler , & ConfigReg ) < 0 )
554
+ return ADS1X1X_FAIL ;
555
+
556
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_OS );
557
+ switch (CompLat )
558
+ {
559
+ case ADS1X1X_COMP_LAT_NON_LATCHING :
560
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_LAT );
561
+ break ;
562
+
563
+ case ADS1X1X_COMP_LAT_LATCHING :
564
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_LAT );
565
+ break ;
566
+
567
+ default :
568
+ return ADS1X1X_INVALID_PARAM ;
569
+ break ;
570
+ }
571
+
572
+ if (ADS1x1x_WriteConfigurationRegister (Handler , ConfigReg ) < 0 )
573
+ return ADS1X1X_FAIL ;
574
+
575
+ return ADS1X1X_OK ;
576
+ }
577
+
578
+ /**
579
+ * @brief Set Comparator queue
580
+ * @param Handler: Pointer to handler
581
+ * @param CompQue: Specify Comparator queue
582
+ * @retval ADS1x1x_Result_t
583
+ * - ADS1X1X_OK: Operation was successful.
584
+ * - ADS1X1X_FAIL: Failed to send or receive data.
585
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
586
+ */
587
+ ADS1x1x_Result_t
588
+ ADS1x1x_SetCompQue (ADS1x1x_Handler_t * Handler , ADS1x1x_CompQue_t CompQue )
589
+ {
590
+ uint16_t ConfigReg = 0 ;
591
+
592
+ if (ADS1x1x_ReadConfigurationRegister (Handler , & ConfigReg ) < 0 )
593
+ return ADS1X1X_FAIL ;
594
+
595
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_OS );
596
+ switch (CompQue )
597
+ {
598
+ case ADS1X1X_COMP_QUE_ASSERT_1 :
599
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_QUE1 );
600
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_QUE0 );
601
+ break ;
602
+
603
+ case ADS1X1X_COMP_QUE_ASSERT_2 :
604
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_QUE1 );
605
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_QUE0 );
606
+ break ;
607
+
608
+ case ADS1X1X_COMP_QUE_ASSERT_4 :
609
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_QUE1 );
610
+ ConfigReg &= ~(1 << ADS1X1X_CONFIG_REG_COMP_QUE0 );
611
+ break ;
612
+
613
+ case ADS1X1X_COMP_QUE_DISABLE :
614
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_QUE1 );
615
+ ConfigReg |= (1 << ADS1X1X_CONFIG_REG_COMP_QUE0 );
616
+ break ;
617
+
618
+ default :
619
+ return ADS1X1X_INVALID_PARAM ;
620
+ break ;
621
+ }
622
+
623
+ if (ADS1x1x_WriteConfigurationRegister (Handler , ConfigReg ) < 0 )
624
+ return ADS1X1X_FAIL ;
625
+
626
+ return ADS1X1X_OK ;
627
+ }
628
+
629
+ /**
630
+ * @brief Set Lo-Threshold
631
+ * @param Handler: Pointer to handler
632
+ * @param Threshold: Specify Lo-Threshold
633
+ * @retval ADS1x1x_Result_t
634
+ * - ADS1X1X_OK: Operation was successful.
635
+ * - ADS1X1X_FAIL: Failed to send or receive data.
636
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
637
+ */
638
+ ADS1x1x_Result_t
639
+ ADS1x1x_SetLoThresh (ADS1x1x_Handler_t * Handler , int16_t Threshold )
640
+ {
641
+ if (ADS1x1x_WriteReg (Handler , ADS1X1X_REG_ADDR_LO_THRESH , (uint16_t )Threshold ) < 0 )
642
+ return ADS1X1X_FAIL ;
643
+
644
+ return ADS1X1X_OK ;
645
+ }
646
+
647
+ /**
648
+ * @brief Set Hi-Threshold
649
+ * @param Handler: Pointer to handler
650
+ * @param Threshold: Specify Hi-Threshold
651
+ * @retval ADS1x1x_Result_t
652
+ * - ADS1X1X_OK: Operation was successful.
653
+ * - ADS1X1X_FAIL: Failed to send or receive data.
654
+ * - ADS1X1X_INVALID_PARAM: One of parameters is invalid.
655
+ */
656
+ ADS1x1x_Result_t
657
+ ADS1x1x_SetHiThresh (ADS1x1x_Handler_t * Handler , int16_t Threshold )
658
+ {
659
+ if (ADS1x1x_WriteReg (Handler , ADS1X1X_REG_ADDR_HI_THRESH , (uint16_t )Threshold ) < 0 )
660
+ return ADS1X1X_FAIL ;
661
+
461
662
return ADS1X1X_OK ;
462
663
}
463
664
0 commit comments