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

676

    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. Sairaammaksi menee: Musk alkaa sensuroida Zelenskyin viestintää X:ssä

      IL: Musk puuttuu Zelenskyin viestintään – X:ään tulossa muutoksia "Elon Musk sanoo korjaavansa X:n, jotta käyttäjät voi
      Maailman menoa
      461
      3950
    2. Mihin sinussa haluan koskea

      Tilanne, että pääsisin tutustumaan eri kohtiin sinussa, mitä haluaisin kokeilla. Käsiin haluaisin tutustua, hieroa niitä
      Ikävä
      74
      3076
    3. Toisen ihmisen sydämellä

      leikkiminen on äärettömän moraalitonta. Antaa turhiaa toiveita ja sitten olla kuin mitään ei olisi tapahtunut. Kuinka vo
      Ikävä
      146
      1460
    4. Millaisena luonteena

      Pidät kaivattuasi??
      Ikävä
      83
      1274
    5. Yleltä tiukka nootti Sohvaperunat-sarjan tyypeistä: "Halutessaan ja tapauskohtaisesti harkiten..."

      Näin "Sohvis-julkkiksia" suojellaan! Toisaalta ovathan nämä ihmiset itse lähteneet mukaan reality-ohjelmaan. Että mitä m
      Sohvaperunat
      20
      1206
    6. 17-vuotiasta lukiolaispoikaa epäillään perheenisän murhasta Pyhtäällä

      Perheenisä löytyi kuolleena kotipihastaan loppuvuonna 2023 Heinlahdesta Myyrynmäeltä. Poliisi epäilee murhasta kotkalais
      Kotka
      29
      1152
    7. Janne Kataja uudessa elämäntilanteessa - Vauva tuli, tyttäret jo teini-iässä: "On jo vähän..."

      Janne Kataja on uudessa elämäntilanteessa, 44-vuotiaana hän tuli kolmatta kertaa isäksi. Tyttäret edellisestä liitosta
      Suomalaiset julkkikset
      14
      912
    8. Olet mun herkkä kohta

      Vaikutuksesi minuun on valtava. Käsitätköhän miten paljon tunnen takiasi? Miten paljon elämäni on muuttunut sen jälkeen
      Ikävä
      58
      876
    9. Kaipaan ja ikävöin sua

      Your📱 ends with 8.
      Ikävä
      57
      874
    10. Milloin olette tavanneet ekaa kertaa?

      Ap vastaa: Viime keväänä maalis/huhtikuun vaihteessa se varmaan oli.
      Ikävä
      70
      833
    Aihe