Teade

Collapse

Foorumi reeglid.

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

tere

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

    tere

    tahaks ka õppida prosesid programeerima, akki keegi õpetaks, programeerimiseks on mul MPLAB (programm) ja programeerija on ka olemas


    programeerimiskogemus on muidu olemas ka B-)

    #2
    Programmeerija oled ehk ikka ise, pigem on sul programmaator
    Foorumi kaudu õpetada on sama hea kui p... kaudu südameoperatsiooni teha Parem sõnasta oma probleem (koodis) ja proovime aidata. Vähemalt ütle, mida tahad ehitada.

    Soovitaks soojalt kasutada ka sellist asja nagu Google või AltaVista jne. Mina nt. ka ei teadnud, mismoodi on failid FATis organiseeritud ja kuidas neid lugeda. Halli aimugi ei olnud. Natuke lugemist, nuputamist ja voila - CF-kaardi (peagi ka MMC) lugemine/kirjutamine PIC18F452-ga läheb ludinal.

    Kunagi sai Tipis arvutiklassis vanadel EC-seeria arvutitel mingit proget kirjutatud. Eriti ei osanud, küsisin naabrilt. Ta ka ei teadnud kuid andis hea nõu: tudeng peab oskama järgi teha. Kui siis hiljem arusaamine tuleb, teed oma parema koodi. Vaatame näiteks, mismoodi käsk selles koodis kirjas on....

    Seda tarkust kasutan siiamaani, edukalt!
    - 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


      #3
      tere

      Kood:
        call    sk1
      
            movlw   d'3'
            movwf   37h
            movwf   38h
            movwf   39h
      37-39h on aadressid???? kui on siis kuidas saaks neid määrata (mul MPLAB)

      Comment


        #4
        Võta kõrvale ka soovitava u-protsessori datasheet ja sealt uuri kõigepealt selle eluka ehitust. Datasheedis on olemas ka progremiseks vajalikud käsud, need küll assambleris....

        Comment


          #5
          Küsimus on arusaamatu... 37h...39h ON aadressid. Kood kirjutab nendel aadressidel olevatesse mälupesadess arvu 3. Mismoodi ja mida sa määrata tahad???
          Käsk MOVWF aadress ju kirjutab W registri sisu aadressil aadress mille sa ometi ette andsid !?
          - 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


            #6
            Õige süntaks nende aadressidega opereerimiseks oleks ehk

            Kood:
               movlw  d'3'
               movwf  0x37
               movwf  0x38
               movwf  0x39
            Numbrite sisestamiseks MPLAB programmis on oma reeglid.

            Näiteks arv 32.
            kuueteistkümnendsüsteem 0x20
            kümnendsüsteem d'32'
            kahendsüsteem b'00100000'

            Räägime veidi adresseerimisest PIC mikrokontrolleritel üldiselt.
            Otsene adresseerimine:
            Aadressid antakse kuueteistkümnendsüsteemis ülatoodud näitele sarnaselt: käsk ja selle järel registri aadress mille sisuga opereeritakse. Kasutajale ligipääsetav RAM mäluruum koosneb kuni 511 registrist. PIC mikrokontrolleri aadressid on 9-bitised. Ent MPLAB-is on võimalik ette anda kõigest 7-bitiseid aadresse,kuigi pic toetab 8-bitiseid arve. Isegi kui kirjutaks suurema arvu aadressina loetakse ainult 7 esimest bitti.

            Kood:
                movwf  0x20
                movwf  0xA0
            Need kaks käsku näiteks teevad täiesti sama asja.

            0x20 või siis 20h on binaaris 00100000 ja 0xA0 või siis A0h on binaaris 10100000
            7 bitiga on võimalik adresseerida kõigest 128 registrit. Probleem on lahendatud, jagades pici mälu nelja 128 bitisesse mälupanka. Mälupanga vahetus käib STATUS registri bittidele RP0 ja RP1 väärtuste andmisega. RP0 ja RP1 on 9 bitise aadressi üheksas ja kaheksas bitt.

            Näiteks soovides ligipääsu 159-ndale mälupesale aadressiga 0x9F teeme kindlaks et
            see on 2 mälupanga register aadressiga 0x20. Mälupank 2 valimiseks RP0=1 RP1=0
            9 bitise aadressina 9Fh = bin'10011111'. MPLAB-ile suupäraselt adresseerituna RP0=1 RP1=0 ja registri aadress 0x20.

            Kood:
            ;Näide anname väärtuse 3 ülalpool mainitud registrile
            
                bsf STATUS,RP0  &#59;RP0=1
                bcf STATUS,RP1  &#59;RP0=1
            
                movlw  d'3'
                movwf  0x20
            Programmeerimise lihtsustamiseks saab MPLAB-is mälupankadele anda ka nimesid.

            Kood:
               TEST equ  0x20 &#59;anname registrile 20h nime (loome kindlale aadressile
                            &#59;kinnistatud muutuja)
              movwf  TEST    &#59;anname tööregistri väärtuse registrile 20h
            Ehk on see vastus sinu küsimusele.

            Mul on hetkel käsil magistritööna väike eestikeelne juhend PIC mikrokontrollerite programmeerimise algtõdedest,vaatan äkki saab selle mingi aeg avalikuks teha. Algajatele oleks ehk abi.

            Comment

            Working...
            X