Yksinkertainen PIC kysymys

vaihtovirtanen

Olen tässä yrittänyt kaikin keinoin ymmärtää seuraavia rivejä;

bsf ADCON0,GO ; start conversion
btfss ADCON0,GO ; this bit will change to zero when the conversion is complete
goto $-1

Ongelma tässä on "btfss" joka on määritelty siten, että sitä seuraava rivi ohitetaan jos bitti on "1".

Manuaaleissa määritellään, että ADCON0:GO pysyy "1":senä kunnes konversio on valmis (esim. TAD syklikaaviossa, mm).

Miten siis on mahdollista, että edellä listattu toimii? Miksei instruction pointer valahda oitis läpi koska konversio on edelleen käynnissä, ja GO bitti on "1"? (vastaavasti, jos olisi jotenkin mahdollista (tiedän ettei ole...) että konversio olisi valmis ennenkuin btfss -komento saavutetaan, ohjelman pitäisi jäädä ikuiseen luuppiin)

Miksi edellä esitetty 3 riviä on oikein, osaako joku selittää tämän tyhmälle?

Kiitos jo etukäteen!

3

823

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • keksa1

      kotias ajaa tuota debuggerissa ja tarkista että mikä se bitti oikeasti on. Meinaan ei ole eka kerta kun on ymmärtänyt väärin tai manuska on väärässä.

      Näyttäs kyllä manuaalin virheeltä.

      • vaihtovirtanen

        Pistin "headerin" tilaukseen, kun debuggaaminen ei 16F690:lla ilman sitä futaa. Tulee varmasti jatkossakin tarpeeseen :)


    • Anonyymi

      Kun bsf ADCON0,GO käskyllä käynnistät konversion, ADCON0-rekisterissä oleva GO-bitti pysyy päällä kunnes konversio on valmis. Kuitenkin btfss ADCON0,GO käsky ei tarkoita, että ohjelma ohittaisi seuraavan rivin vain silloin kun GO-bitti on 1, vaan se tarkoittaa "branch if bit test false, skip next instruction if bit is set". Eli jos GO-bitti on 0, seuraava rivi ohitetaan.

      Eli kun konversio on valmis, GO-bitti muuttuu 0:ksi ja btfss ADCON0,GO käsky ei hyppää seuraavaan rivin, vaan jatkaa suorittamistaan rivi kerrallaan. Tämä on syy sille miksi kyseinen koodinpätkä toimii odotetulla tavalla.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikka runnoo: datakeskuksille tulee UUSI yritystuki

      "Suomen valtio erikseen tukee esimerkiksi kryptovaluuttaan tai aikuisviihteeseen tai muuhun keskittyviä datakeskuksia."
      Maailman menoa
      54
      2212
    2. Eläkeläiset siirrettävä muuttotappioalueille

      Joutoväki pois ruuhkauttamasta elättäjien arkea. Samalla putoaa jokaisen asumiskulut ja rahaa jää enemmän kuluttamiseen.
      Maailman menoa
      199
      2041
    3. Onko kivaa jättää

      elämän suurin rakkaus hiljaisuuteen?
      Ikävä
      116
      1382
    4. En kerro nimeäsi nainen

      Sillä olet nyt salaisuus jota kannan sydämessäni. Tämä mitä tunnen ja kuinka sinuun vahvasti ihastuin on jo niin erikoin
      Ikävä
      71
      1170
    5. Mitä haluaisit sanoa hänelle tänään?

      Kerro tähän viestisi. 🍭🍡🍦
      Ikävä
      96
      995
    6. Olet kiva ihminen

      En kiellä sitä yhtään. Sinussa on hyvin paljon erinomaisia puolia, enemmän varmasti kun meissä muissa. Sitten on puoli
      Ikävä
      73
      929
    7. Auta mua mies

      Ota vielä yhteyttä, keksi oikeat sanat että vuosien ajan kasvanut muuri murtuu meidän väliltä vaikka aluksi vain vähän.
      Ikävä
      78
      889
    8. Uuden upotuskasteen vaiettu ongelma

      Alkuseurakunnan kaste oli useamman vuosisadan upotuskaste, joka toimitettiin joko ulkona luonnon vesistöissä tai kasteki
      Kaste
      49
      872
    9. Ja tääkin vielä...

      Kukakohan on valittanut, Salmiko itse? https://www.viiskunta.fi/rehtori-valittiin-ahtarissa-ilman-hakumenettelya-o/13479
      Ähtäri
      33
      845
    10. Minkälaisen viestin toivoisit saavasi?

      Miehelle.... Helpota vähän.
      Ikävä
      61
      746
    Aihe