Odpověď na názor

Odpovídáte na názor k článku Využití TinyGo při programování Raspberry Pi Pico: od GPIO až k PWM. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 8. 1. 2026 15:51

    Pavel Tišnovský
    Zlatý podporovatel

    Interně to čtení vypadá takto:

    func (c ADCChannel) getOnce() uint16 {
            // Make it safe to sample multiple ADC channels in separate go routines.
            adcLock.Lock()
            rp.ADC.CS.ReplaceBits(uint32(c)<<rp.ADC_CS_AINSEL_Pos, rp.ADC_CS_AINSEL_Msk, 0)
            rp.ADC.CS.SetBits(rp.ADC_CS_START_ONCE)
    
            waitForReady()
            v := rp.ADC.RESULT.Get()
            adcLock.Unlock()
    
            // rp2040 is a 12-bit ADC, scale raw reading to 16-bits.
            return uint16(v) << 4
    }

    A to vlastní čekání řeší právě čekání na ready bit:

    func waitForReady() {
            for !rp.ADC.CS.HasBits(rp.ADC_CS_READY) {
            }
    }