Teade

Collapse

Foorumi reeglid.

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

Algaja PICimehe mure: väljundid OK, sisendid tummad

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

    Algaja PICimehe mure: väljundid OK, sisendid tummad

    Terejõudu!

    Olen käsile võtnud esimese PICi projekti, eks näis, kas asja ka saab. Hetkel käib katsetamine ja uute maade avastamine

    Probleemi lühikirjeldus: kivil väljundite juhtimine on OK, saab erinevaid pin'e niisama lülitada, LEDi teatud sagedusega vilgutada jne, s.t selles osas kurta ei oska midagi. Küll aga ei taha kivi mitte kuidagi mingit teavet sisse süüa (loomulikult olen TRISx-s vastavad pin'id koodis "1"-ks teinud).

    Mida proovinud olen: WDT on kogu aeg välja lülitatud, et olla 100% kindel, et see ei sekku; sisenditele olen pannud nii pull-up'e kui ka pull-down'e (100k ja loomulikult mitte korraga ); siis viimasena mõtlesin, et äkki suudab PIC kuidagi näha seda, et toitepinge on madalam kui toitejala pealt võetud signaal, ning timmisin signaali potekaga 0 ja 5 voldi vahel edasi-tagasi, kuid tulemus ümmargune null. Loomulikult igas variatsioonis veel plussi ja nulli jalale peale ja maha klõpsutada jms "traditsioonilised" veaotsimis-katse-eksitusmeetodid.

    Koodiviga? Mkm, sest simulaatoriga töötab kood korralikult ning nii lihtsas koodis vast ei saa isegi mina midagi mööda panna. Samuti olen katsetanud mitmete erinevate koodidega ja vähemalt millegagi oleks võinud ikka midagi juhtuda. Kaugem eesmärk oleks PICi interrupti kasutama hakata, aga alustaks millestki elementaarsemast hetkel...

    Kasutatav raud: 16F684 ja isearetatud programmaator (no see kõige lihtsam, mille kasutaja felch ka ajakirjas on avaldanud).
    Koodinäide, millega lugu simulaatoris töötab, aga millega päris elus ei tule piuksugi ehk siis näidaku mulle PortC esimesse kolme auku seda, mida "mõistus" näeb PortA esimese kolme augu pealt:


    org 0000h
    goto main


    trisa equ 85h
    trisc equ 87h
    status equ 03h
    porta equ 05h
    portc equ 07h


    main
    bsf status,5
    movlw 0x00
    movwf trisc
    movlw 0x07
    movwf trisa
    bcf status,5


    start
    movlw 0x00
    addwf porta,0
    movwf portc
    goto start


    end
    Ilmselt teen ma ise midagi kapitaalselt valesti, aga oskaks keegi algaja eksleja õigele teele juhatada?

    Tänud!

    #2
    Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad...

    Olen küll teise usu esindaja, aga üldiselt sisendid (nuppude oma näiteks) on takiga toitesse ja siis lühistad seda nupuga vastu maad. 10k on näiteks ilus number.

    Comment


      #3
      Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad...

      mis progrmisplaat?? anna skeemi
      Fixing stuff and building stuff.

      Comment


        #4
        Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad

        Kas ANSEL on õigesti s.t. sisendpinnid ikka digitaalsed? Paar korda on õnnestunud selle vea otsa komistada.
        Hoiatus - muudan oma postituse sisu kuni 30 minuti vältel pärast postitamist.

        Comment


          #5
          Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad...

          Esmalt postitatud 6p45s poolt Vaata postitust
          Kas ANSEL on õigesti s.t. sisendpinnid ikka digitaalsed? Paar korda on õnnestunud selle vea otsa komistada.
          Publiku marulised ovatsioonid ei taha lõppeda ning aplaus kaikub taevani! Manuali loetakse, nagu ikka, siis, kui midagi muud enam ei aita (no tõesti, kes siis hakkab 192 lk niisama lugema) ja nagu nüüd selgub, oli I/O alapeatükis tõepoolest vastav punkt olemas Tänud, 6p45s, nüüd toimivad ka sisendid nii nagu peavad. Muide, kui keegi veel juhtub sama (või sarnase) kiviga sama asjaga maadlema, siis juhin tähelepanu veel ühele võimalikule veakohale: selleks, et saada digitaalset sisendit, tuleb sättida ANSEL õigeks (nagu juba öeldi), kuid kindlasti tuleb välja lülitada ka komparaatorid, mis on pärast reset'i aktiivsed (vihje: register CMCON0). Vastasel korral ei pruugi kivi jällegi aru saada, mis tast parajasti tahetakse...

          Esmalt postitatud makerimages poolt Vaata postitust
          mis progrmisplaat?? anna skeemi
          Mina toimetasin 70% ulatuses selle kirjutise põhjal (tänud Veljole!), jätsin seal olnud skeemist välja endale mittevajalikud ühendused ning lugesin netist veel juurde natuke (märksõnad: "DIY PIC serial programmer"). Mitte et see skeem seal vale oleks, aga mitmest allikast kontrollimine ei tee paha

          Comment


            #6
            Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad

            Mulle tundub, et sa oled unustanud ühe suurima PIC probleemi, BANKing PORT asub bank 0, TRIS asub bank 1, ja LAT uuemates pic-des asub bank 02 ja ANSEL ehk kas on digital või analoog asub bank 3 tavaliselt.
            Vähemasti sinu programmi näites ei esine BANK käsklusi. (ja kui on analoog sisenditega PIC, siis ka ANSEL on kohustuslik, ja osades veel komparaator lisaks.)
            Seda bankingut saad eluaeg kiruda, kui pic-dega tegeled, üks ütlemata tüütu asi.

            Comment


              #7
              Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad

              Esmalt postitatud ahelet poolt Vaata postitust
              Mulle tundub, et sa oled unustanud ühe suurima PIC probleemi, BANKing PORT asub bank 0, TRIS asub bank 1, ja LAT uuemates pic-des asub bank 02 ja ANSEL ehk kas on digital või analoog asub bank 3 tavaliselt.
              Muidugi võib kirjutada programmi assambleris või ka otse kahendkoodis.
              Aga kui pole just kiiruse või mäluprobleemi siis võib ka kasutada natike
              kõrgemat ja üldisemat keelt. Näiteks C-d.
              Sobib nii PIC16F684 kui ka suuremate jaoks.

              Olen kasutanud natuke suuremat PICi - PIC18F4550.
              Kirjutad üks kord kivisse boodi ja edaspidi laadid oma C kirjutatu,
              täpsemini demoprogrammi kohandatud variandi, üle USB ühenduse PICi.
              Tahad, ühendad komplekti oma nupud ekraani või
              kasutad juhtimiseks suurt PC-d.

              Mulle tundub see üsna mõnus lahendus.
              Ja bankade üle muretseb translaator.

              Comment


                #8
                Vs: Algaja PICimehe mure: väljundid OK, sisendid tummad

                Vähemasti sinu programmi näites ei esine BANK käsklusi.
                Aga ei peagi kasutama ju BANKSEL käsku. Võib ka mängida bittidega. Antud kivi puhul STATUS registri bit 5 oleks määrab BANK'i, mille muutmine on ka teemaalgataja koodis olemas.

                Comment

                Working...
                X