Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

PIC-i nupumaatriks ja INTF-i kadu

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    PIC-i nupumaatriks ja INTF-i kadu

    selline setup mul:

    *) RB0-i tuleb 11khz ristkülik peale mis tekitab INTF-i
    *) RB4, RB5 on inputid mis tekitavad RBIF-i
    *) RB1..RB3 on outputid

    RB1-RB5 realiseerivad nupumaatriksi.

    proge algoritm on mul selline: kui RB4 või RB5 muutuvad, siis jätan interrupt handleris aja meelde ja 20ms pärast mudin main luubis RB1..RB3-e (selleks et teada saada mis nuppu pressiti).

    selline imelik asi juhtub nüüd:

    kui nuppe kiiresti plõksima hakata (trigger happy test), siis ühel hetkel enam INTF-i ei teki. kuigi pulsid on selle pin-i peal olemas.

    mure on suur.
    on ideid?

    #2
    niipalju veel et kui ma väljunditena kasutasin RA3..RA5 siis kõik toimib (INTF jääb alles)

    Comment


      #3
      Koodi paluks, muus ei saa viga tõenäoliselt olla.

      Comment


        #4
        skeemi ja softi nägemine teeks vastamise küsimusele palju lihtsamaks
        MSN- taneltreima182@hotmail.com
        telefon katki.

        Comment


          #5
          skeemi ja softi nägemine teeks vastamise küsimusele palju lihtsamaks
          skeem http://www.algonet.se/~adok/aadu/pic/button_matrix.gif

          175 rida c koodi, palun kannatage ära
          http://www.algonet.se/~adok/aadu/pic/main.c

          kes bugi leiab sellele võin õlle tuua.

          Comment


            #6
            Ma olen ka PICidega tegelenud.

            Kontrolli kas C kompilaator ei ole vigane. Ma kasutasin kord Pascalit ja see oli. Tootja kodulehelt või foorumist peaks infot leidma.

            Kui INTF enam ei teki, siis kas teised interruptid toimivad?
            Kui ükski interrupt ei toimi, aga ülejäänud programm töötab OK, siis on viga INTCON registri ülekirjutamises. Kui ainult INTF ei toimi, siis ilmselt ei nulli programm seda.


            Lammuta kood assembleriks ja proovi simulaatoris. Kõigepealt simuleeri nupuvajutust ja kui programm täidab interruptikoodi, siis simuleeri veel korra nupu vajutust. Nii peaks viga välja tulema.

            Comment


              #7
              Kui INTF enam ei teki, siis kas teised interruptid toimivad?
              Kui ükski interrupt ei toimi, aga ülejäänud programm töötab OK, siis on viga INTCON registri ülekirjutamises. Kui ainult INTF ei toimi, siis ilmselt ei nulli programm seda.
              teised toimivad ilusti. ainult INTF ei toimi. ja progega nullin interrupt handleris INTF-i ära.


              Lammuta kood assembleriks ja proovi simulaatoris. Kõigepealt simuleeri nupuvajutust ja kui programm täidab interruptikoodi, siis simuleeri veel korra nupu vajutust.
              Nii peaks viga välja tulema.
              kas 'mplab ide'-ga on võimalik simuleerida?
              tänud!

              Comment


                #8
                Asm-is kirjutatud koodi saab MPLAB-iga simuleerida. Olen ka ise palju vigu nii üles leidnud. Kuid kuidas seda C-s teha, ei tea. Soovitus: kirjuta kogu programm asm-is.
                Teive varjant, ära kasuta katkestusi. Ise olan saanud seni kõik töö tehtud ilma katkestusteta. Kasuta pead.

                Comment

                Working...
                X