Adding code use 12-bit resolution for ADC and to clear previous ADC INPUTCTRL before subsequent read
Этот коммит содержится в:
родитель
27fafb7ab5
коммит
5f77447e1a
1 изменённых файлов: 6 добавлений и 3 удалений
|
@ -321,7 +321,7 @@ func InitADC() {
|
||||||
|
|
||||||
sam.ADC0.CTRLA.SetBits(sam.ADC_CTRLA_PRESCALER_DIV32 << sam.ADC_CTRLA_PRESCALER_Pos)
|
sam.ADC0.CTRLA.SetBits(sam.ADC_CTRLA_PRESCALER_DIV32 << sam.ADC_CTRLA_PRESCALER_Pos)
|
||||||
// adcs[i]->CTRLB.bit.RESSEL = ADC_CTRLB_RESSEL_10BIT_Val;
|
// adcs[i]->CTRLB.bit.RESSEL = ADC_CTRLB_RESSEL_10BIT_Val;
|
||||||
sam.ADC0.CTRLB.SetBits(sam.ADC_CTRLB_RESSEL_10BIT << sam.ADC_CTRLB_RESSEL_Pos)
|
sam.ADC0.CTRLB.SetBits(sam.ADC_CTRLB_RESSEL_12BIT << sam.ADC_CTRLB_RESSEL_Pos)
|
||||||
|
|
||||||
// wait for sync
|
// wait for sync
|
||||||
for sam.ADC0.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_CTRLB) {
|
for sam.ADC0.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_CTRLB) {
|
||||||
|
@ -351,7 +351,7 @@ func InitADC() {
|
||||||
|
|
||||||
// same for ADC1, as for ADC0
|
// same for ADC1, as for ADC0
|
||||||
sam.ADC1.CTRLA.SetBits(sam.ADC_CTRLA_PRESCALER_DIV32 << sam.ADC_CTRLA_PRESCALER_Pos)
|
sam.ADC1.CTRLA.SetBits(sam.ADC_CTRLA_PRESCALER_DIV32 << sam.ADC_CTRLA_PRESCALER_Pos)
|
||||||
sam.ADC1.CTRLB.SetBits(sam.ADC_CTRLB_RESSEL_10BIT << sam.ADC_CTRLB_RESSEL_Pos)
|
sam.ADC1.CTRLB.SetBits(sam.ADC_CTRLB_RESSEL_12BIT << sam.ADC_CTRLB_RESSEL_Pos)
|
||||||
for sam.ADC1.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_CTRLB) {
|
for sam.ADC1.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_CTRLB) {
|
||||||
}
|
}
|
||||||
sam.ADC1.SAMPCTRL.Set(5)
|
sam.ADC1.SAMPCTRL.Set(5)
|
||||||
|
@ -389,6 +389,9 @@ func (a ADC) Get() uint16 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Selection for the positive ADC input channel
|
// Selection for the positive ADC input channel
|
||||||
|
bus.INPUTCTRL.ClearBits(sam.ADC_INPUTCTRL_MUXPOS_Msk)
|
||||||
|
for bus.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_ENABLE) {
|
||||||
|
}
|
||||||
bus.INPUTCTRL.SetBits((uint16(ch) & sam.ADC_INPUTCTRL_MUXPOS_Msk) << sam.ADC_INPUTCTRL_MUXPOS_Pos)
|
bus.INPUTCTRL.SetBits((uint16(ch) & sam.ADC_INPUTCTRL_MUXPOS_Msk) << sam.ADC_INPUTCTRL_MUXPOS_Pos)
|
||||||
for bus.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_ENABLE) {
|
for bus.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_ENABLE) {
|
||||||
}
|
}
|
||||||
|
@ -404,7 +407,7 @@ func (a ADC) Get() uint16 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear the Data Ready flag
|
// Clear the Data Ready flag
|
||||||
bus.INTFLAG.SetBits(sam.ADC_INTFLAG_RESRDY)
|
bus.INTFLAG.ClearBits(sam.ADC_INTFLAG_RESRDY)
|
||||||
for bus.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_ENABLE) {
|
for bus.SYNCBUSY.HasBits(sam.ADC_SYNCBUSY_ENABLE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче