Teade

Collapse

Foorumi reeglid.

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

Pic10f220

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

    Pic10f220

    Terv.
    Muretsesin mängimiseks minimalistlikud pic-id 10f220. Aga kuna ennem olen ainult 16f84 ja 16f628-ga tegelenud, siis nüüd ei saa tükist jagu. Eelmistele on netist koode ämbriga võtta ja pole raske pihta saada. Sellel on aga teistsugune ülesehitus(tundub olevat sarnane 12f509-ga). Ehk on kellelgi siis kogemusi või koodijuppi, mis kasvõi LED-i põlema paneks.


    -Eggy

    #2
    Re: Pic10f220

    aga registritesse kirjutamine peaks ju igal PICäil samamoodi toimima. Otsi datasheedist registrite nimed välja (äkki leiad ka koodijuppe sealt). Käsud peaks kõigile samad olema (oleneb muidugi keeles, milles kirjutad).

    Comment


      #3
      Vs: Pic10f220

      Ta sinna registrite juurde pidama jääbki. Sellel tükil ei ole TRIS registril eraldi aadressi, seda pole ka GPIO registril (analoog PortA, PortB). Samas kuskilt foorumist lugesin, et algul eaks kõik pinid olema analoogi peal, selle muudan küll ADCON0 registris ära.
      ...pusin edasi.

      Comment


        #4
        Vs: Pic10f220

        Onikka tris register ja ka gpio. Loe datasheeti: http://ww1.microchip.com/downloads/e...doc/41270a.pdf
        Laed W'sse pinnide konfi ja ütled TRISGPIO või TRIS6 (lk.25). ANSEList tuleb pinnid enne digiks defineerida (00xxxx00)!
        Ainult GPIO0 ja 1 on konfitavad (vaikimisi ongi) analoogiks. GPIO3 on ainult sisend.
        - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
        - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

        Comment


          #5
          Vs: Pic10f220

          Nii...olen jälle olude sunnil nende kivide juures tagasi. Simulaatori olemasolu tõttu sain nüüd koodi selgemaks. Sisendi/väljundi määramine, analoog/digi, väljundisse kirjutamine jne...aga see simulaatoris. Kivis kood ei tööta, räuskab ikka selle sisemise gene pärast. Olen selle osccal-i väärtuse jalutama lasnud. Ehk jagab keegi targem nõu.

          Comment


            #6
            Vs: Pic10f220

            osccal on oluline vaid kindla sageduse vajadusel (rs232 näiteks). Muidu peaks ikka käima...kui kivi veel elus.
            - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
            - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

            Comment


              #7
              Vs: Pic10f220

              Nu oshonsofti simulaatoriga kood töötab. Koodi annab ilusti kivisse kirjutada ja ka kivist lugeda. Olemas hetkel 4 sama isendit, kahelt, mida pole kirjutanud, saan lugeda neid oscal baite, mis asuvad kivi koodi lõpus. Sealt olen saanud erinevad väärtusi ja kirjutanud need ka antud kivi samasse kohta-ei midagi.

              Comment


                #8
                Vs: Pic10f220

                Simulaatoris on ennegi kood kenasti jooksnud...
                Proovi kindlaks teha (LEDiga, ossiga), kuskohas kinni jookseb.
                - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
                - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

                Comment


                  #9
                  Vs: Pic10f220

                  Kood:
                  ;........................
                          LIST P=10f220    
                  ;
                          #include "P10F220.INC"
                  ;
                  __CONFIG  _MCLRE_OFF & _CP_OFF & _WDT_OFF & _MCPU_OFF & _IOFSCS_8MHZ
                  ;
                  ;
                  ORG     0x000             ; coding begins here
                  ;
                  bsf        STATUS,5      ; Bank 1
                  movlw    b'00000010'    ;keskmine sagedus, viimane bitt 0=GP2, 1=gene Out
                  movwf    OSCCAL        ; Calibrate
                  bcf        STATUS, 5     ; Bank 0
                  ;
                  ;-----erinevad vaariabelid------;
                      cblock 0x10                
                      counta,countb,countc
                      endc
                  ;    
                  ;    
                  ;------sisendite -ja väljundite kamm-----;
                      MOVLW     b'1000'        ;Gp3,Gp2,Gp1,Gp0 // 0=väljund 1=sisend
                      TRIS    GPIO        ;Load TRISB file
                      MOVLW    b'11000011'    ;kõik digital I/O esimene bit 0=AN1/1=GP1, teine 0=AN2/1=GP2
                      movwf    ADCON0
                      CLRF    GPIO
                  ;    
                  ;programm ise
                  start    
                      movlw    1    ;GP0
                      movwf    GPIO
                      ;call    delay
                      movlw    2     ;GP1
                      movwf    GPIO
                      ;call    delay
                      movlw    4
                      movwf    gpio    ;GP2
                      ;call    delay
                  
                      
                      goto    start
                  ;::::::::::::::::::::::::::::::::::::::;
                  ;-----Deelai rutiinid-----;
                  ;::::::::::::::::::::::::::::::::::::::;
                  delay
                      movlw    150        ; mällu
                      movwf    counta        ; mälust counta väärtuseks 
                      movlw    150
                      movwf    countb
                      movlw    2
                      movwf    countc
                  Loop1 
                      decfsz     counta,1    
                      goto     Loop1
                  Loop2
                      decfsz     countb,1    
                      goto     Loop1
                  Loop3    
                      decfsz     countc,1    
                      goto     Loop1
                      return
                      
                  end
                  Siin panin GP2/Tocl/Fosc4 otsa sisemist takti välja toksima ja nii asi töötab. Pean oma 10MHz ossi suht lõpu poole keerama, et saada ilus pilt ette-st kell toksib sees. Aga see on ka ainuke LED, mille ma põlema saan.

                  Comment


                    #10
                    Vs: Pic10f220

                    Sain asja lõpuks tööle. Asi tundus olevat Option registris. Igatahes sai maadeldud Option ja ADCON registritega, kui ükskord järsku tööle hakkas.

                    Comment


                      #11
                      Vs: Pic10f220

                      Oluline on ka registrite laadimise järjekord. Äkki oli asi selles?
                      - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
                      - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

                      Comment


                        #12
                        Vs: Pic10f220

                        Ei usus, sest järjekorda ma ei muutnud, ainult lisasin selle OPTION registri juurde. Järjekords siis OPTION, OSCCAL, ADCON0, TRIS.
                        Eks ma küsin ka järgmise küsimuse: Nimelt panen ADC tööle, ootan mingi aja ja siis saadakse ADRES registrisse konverteerimise tulemus. Nüüd on vaja need bitid sealt ükshaaval kätte saada. Proovisin kõigepealt nii:
                        MOVLW ADRES,1
                        MOVWF GPIO,1
                        See ei kõlba. Minu arust siin on viga selles, et MOVWL käsuga liigutan tervet baiti, mitte bitti. Siis vaatasin kuskilt examplest, et tehakse ADRES-iga hoopis nii:
                        MOVF ADRES,W

                        Aga vot hetkel ei oska edasi midagi teha. Vaja kuidagi saada siis bitid ükshaaval kätte.
                        viimati muutis kasutaja Eggy; 28 m 2007, 08:26.

                        Comment


                          #13
                          Vs: Pic10f220

                          movlw 'A' kirjutab konstandi 'A' registrisse W. movwf x kirjutab W sisu registrisse x ja movf x,W kirjutab registri x sisu Wsse. Seega esimene variant kindlasti ei sobi.
                          Kui tahad bitthaaval nihutada, kasuta rrf käsku:
                          bcf carry
                          rrf ADRES ; nihutame tulemuse LSB carrysse
                          rrf REGISTER ; ja nüüd carryst registrisse REGISTER.
                          Aga milleks tahad bitthaaval liigutada? Terve bait korraga on mõistlikum.
                          movf ADRES,W
                          movwf REGISTER
                          - Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
                          - Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!

                          Comment


                            #14
                            Vs: Pic10f220

                            Mul on niikuinii lähenemine natuke konarlik, aga minu idee on selline et võtan sealt ADRES registrist näiteks esimese biti ja saadan selle mööda data otsa kivist välja. Kivi ise toksib ka arvuti poolele gene signaali. Seega ma võtan biti, toksin kella. Võtan järmise baidi ja toksin uuesti kella. Kella järgi sünkroniseerin siis arvutis baitide lugemist.
                            viimati muutis kasutaja Eggy; 28 m 2007, 10:36.

                            Comment


                              #15
                              Re: Vs: Pic10f220

                              seletan lahti. Ta tahab ADC väärtust omatehtud TWI/I2C signaaliga saata arvuti LPT porti, kui arvuti on andnud GP3 pinile pulsi, et alustada.

                              Äkki saab keegi paremini aru siis...

                              Comment

                              Working...
                              X