Arduino Mega ja analogread()

Viestiketju alueella 'Elektroniikka ja HW-modifiointi' , aloittaja Occurrence, 16.08.2021.

  1. Occurrence

    Rekisteröitynyt:
    23.06.2007
    Viestejä:
    839
    Mitähän kummaa on tekeillä kun jos luuppaan analogread-funktiota 10k kertaa ja mittaan ajan mills() funktiolla (jälkeen - ennen).
    Saan tulokseksi per kierros (loopissa on jonkin verran pitkiä integerejä (long) ja näillä laskutoimituksia luetuill arvoilla

    pelkkä looppi 3us
    yksi x analogread 111us
    viisi x analogread 112us (eri pinneistä)

    Jokin ei nyt täsmää. Pistin kaikki muuttujat vielä volatile tyyppisiksi ilman vaikutusta.

    Jos nostan AD-muuntimen kellon 1MHz, vastaavat arvot on
    yksi x analogread 15us
    viisi x analogread 16us (eri pinneistä)


    Miksi yksi ja viisi muunnosta kestää käytännössä yhtä kauan?

    kaikki luetut arvot pinneistä on eri joten kyllä ne muuntimelta tulee.
     
    Viimeksi muokattu: 16.08.2021
  2. LM2

    Rekisteröitynyt:
    29.11.2010
    Viestejä:
    1 112
    Mikä kortti ja mikä ohjelma. Voisi joku kokeilla
     
  3. Occurrence

    Rekisteröitynyt:
    23.06.2007
    Viestejä:
    839
    Mega tuo oli.
    Sellainen tuli kyllä mieleen että tuossa prossussa AD-muunos ei taida kestää vakioaikaa vaan kesto riippuunee jännitteestä. Tulot oli testissä ilman signaalia eli käytännössä nolla-jännitteisiä plus kohina. Siksi muunnosaika voi olla hyvinkin lyhyt.

    Silti hämmästyttää se että yhden ja useamman analogikanava luku kestää yhtä kauan. Se ei vaan ole mahdollista koska prossussa on yksi muunnin ja muxi sen edessä joten kanavia ei voi muuntaa samaan aikaan.
     
  4. LM2

    Rekisteröitynyt:
    29.11.2010
    Viestejä:
    1 112
    Niin minunkin mielestäni. Joskus tappelin Megan kanssa ja kanavan vaihto vei kyllä aikaa.
    Edit: Muistaakseni vei aikaa että lukema tasaantui kanavan vaihdon jälkeen. Eli kokeile eri kanavilla eri jännitteitä. Taitaa tulla ongelmia.
     
    Viimeksi muokattu: 19.08.2021
  5. Occurrence

    Rekisteröitynyt:
    23.06.2007
    Viestejä:
    839
    Jännitteen tasoittuminen ei ole ongelma siihen löytyy prossun datalehdestä faktat. Jotain mätää on AnalogRead-funtion toiminnassa mutta mitä.

    Jännitteen tasoittumisajan vaatimus on merkki liian suuresta syöttöimpedanssista. Datalehti kertoo miten syöttoimpedanssi vaikuttaa taajuuden suhteen tarkkuuteen. Sitä voi auttaa jos pistää sopivan konkan tulosta maihin. se alentaa impedanssitasoa suurilla taajuuksilla mitä näytteenoton alkuhetki edustaa.
     

Jaa tämä sivu

Alibi
Anna
Deko
Dome
Erä
Hymy
Kaksplus
Kippari
Kotilääkäri
Kotiliesi
Koululainen
Ruoka.fi
Parnasso
Seura
Suomen Kuvalehti
TM Rakennusmaailma
Tekniikan Maailma
Vauhdin Maailma
Golfpiste
Vene
Nettiauto
Ampparit
Plaza
Muropaketti