File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -433,7 +433,18 @@ func (a ADC) Get() uint16 {
433
433
sam .ADC .CTRLA .ClearBits (sam .ADC_CTRLA_ENABLE )
434
434
waitADCSync ()
435
435
436
- return uint16 (val ) << 4 // scales from 12 to 16-bit result
436
+ // scales to 16-bit result
437
+ switch (sam .ADC .CTRLB .Get () & sam .ADC_CTRLB_RESSEL_Msk ) >> sam .ADC_CTRLB_RESSEL_Pos {
438
+ case sam .ADC_CTRLB_RESSEL_8BIT :
439
+ val = val << 8
440
+ case sam .ADC_CTRLB_RESSEL_10BIT :
441
+ val = val << 6
442
+ case sam .ADC_CTRLB_RESSEL_16BIT :
443
+ val = val << 4
444
+ case sam .ADC_CTRLB_RESSEL_12BIT :
445
+ val = val << 4
446
+ }
447
+ return val
437
448
}
438
449
439
450
func (a ADC ) getADCChannel () uint8 {
Original file line number Diff line number Diff line change @@ -863,7 +863,18 @@ func (a ADC) Get() uint16 {
863
863
for bus .SYNCBUSY .HasBits (sam .ADC_SYNCBUSY_ENABLE ) {
864
864
}
865
865
866
- return uint16 (val ) << 4 // scales from 12 to 16-bit result
866
+ // scales to 16-bit result
867
+ switch (bus .CTRLB .Get () & sam .ADC_CTRLB_RESSEL_Msk ) >> sam .ADC_CTRLB_RESSEL_Pos {
868
+ case sam .ADC_CTRLB_RESSEL_8BIT :
869
+ val = val << 8
870
+ case sam .ADC_CTRLB_RESSEL_10BIT :
871
+ val = val << 6
872
+ case sam .ADC_CTRLB_RESSEL_16BIT :
873
+ val = val << 4
874
+ case sam .ADC_CTRLB_RESSEL_12BIT :
875
+ val = val << 4
876
+ }
877
+ return val
867
878
}
868
879
869
880
func (a ADC ) getADCBus () * sam.ADC_Type {
You can’t perform that action at this time.
0 commit comments