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

734

    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. Ikävöin sinua kokoyön!

      En halua odottaa, että voisin näyttää sinulle kuinka paljon rakastan sinua. Toivon, että uskot, että olen varsin hullun
      Ikävä
      46
      3220
    2. Kova karman laki

      Karman lain kautta pahantekijä tehdessään pahaa toteuttaa koston ja rangaistuksen sille jolle pahaa on tehty. Tämä tarko
      Hindulaisuus
      509
      1952
    3. Päivieni piristys, missä olet?

      Toit iloa ja valoa mun elämään ☀️ Nyt mennyt kohta viikko ettei ole nähty. Kaipaan nähdä sua silti ja pelkään vaikka tei
      Ikävä
      17
      1920
    4. Näen jatkuvasti Sompasaunalla alastomia miehiä ja naisia

      jotka menevät siihen viereiseen rantaan myös uimaan alasti. Sompasaunat on siis Mustikkamaalla Helsingissä, ja kuljen si
      Maailman menoa
      81
      1791
    5. Älä mahdollisesti ota itseesi

      En voinut tietää. Sitäpaitsi.. niin
      Ikävä
      18
      1522
    6. Jos sinä olisit pyrkimässä elämääni takaisin

      Arvelisin sen johtuvan siitä, että olisit taas polttanut jonkun sillan takanasi. Ei taida löytyä enää kyliltä naista, jo
      Tunteet
      43
      1418
    7. Ota nainen yhteyttä ja tee Tikusta asiaa?

      Niin sitten minä teen Takusta asiaa.
      Ikävä
      28
      1356
    8. Millainen kaivattusi luonne on?

      Millaisia luonteenpiirteitä arvostat kaivatussa? Oletteko samanlaisia luonteeltanne?
      Ikävä
      90
      1319
    9. Helena ja Mikko Koivun ero jatkuu edelleen ja loppua ei näy.

      Voi eikä, miksi menee noin vaikeaksi avioero ja sopua ei tää ex- pari vaan saa.
      Kotimaiset julkkisjuorut
      126
      1212
    10. UPM suunnittelee paperintuotannon lopettamista LPR:ssa

      Ilta-Sanomissa oli uutinen. Metsäyhtiö UPM suunnittelee paperintuotannon lopettamista Kaukaan-tehtaalla Lappeenrannassa
      Lappeenranta
      113
      1168
    Aihe