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

745

    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. Huomenet naiselle

      Harmittaa ettei ehkä nähdä enää koskaan. Näillä mennään sitten.
      Ikävä
      32
      1883
    2. Oletko pitkävihainen ja onko sinulla " huono muisti muisti "?

      Mitä asioita et unohda tai anna anteeksi ? Mitä asioita voit " unohtaa" tai unohtaa? Vastaa koskien kaivattuasi tai yle
      Ikävä
      45
      1873
    3. Kokoomus haluaa leikata vielä lisää sosiaaliturvasta

      Kokoomuksen Sanni-Granhn Laasonen pyytänyt KELA:aa selvittämään mistä leikataan vähäosaisilta vielä lisää sosiaaliturvas
      Maailman menoa
      293
      1745
    4. Mitä tapahtuu

      Syksyllä?
      Ikävä
      96
      1326
    5. Ikävöin sua

      Sä vaan pyörit mun mielessä, en saa sua unohdettua. Tilanteesta tekee vaikean sen kun molemmat ollaan varattuja ja tilan
      Ikävä
      7
      1258
    6. Neljä kuukautta vankeutta, kenelle?

      Kuka tuomittiin ehdottomaan neljän kuukauden vankeustuomioon ja korvauksiin?
      Suomussalmi
      10
      1107
    7. Kaikesta muusta

      Mulla on hyvä fiilis. Mä selviän tästä ja sit musta tulee parempi ihminenkin. Ainut, mitä mun pitää nyt välttää on se ko
      Ikävä
      13
      1051
    8. Oho! Esko Eerikäinen joutuu palaamaan "kalakukkokaupunkiin" - Tämä syy ei jätä kylmäksi!

      Esko Eerikäinen on kyllä monessa mukana ja uskaltaa heittäytyä. Hatun nosto siitä! Eerikäinen palasi “kalakukkokaupunkii
      Kotimaiset julkkisjuorut
      66
      1006
    9. Ei sua enään tunnista

      Kun olet vanhentunut ja lihonut.
      Ikävä
      20
      972
    10. Olet huippunainen

      Ja onneksi tiedät sen itsekin.
      Ikävä
      36
      962
    Aihe