Teade

Collapse

Foorumi reeglid.

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

Microchipi ujupunkti teisendamine

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

    Microchipi ujupunkti teisendamine

    Oleks vaja teisendada sellest formaadist kümnendnumbriks aga nii, et koma tuleb õige koha peale. Seni kasutatav algoritm lihtsalt jagab 10-ga niipalju kui vaja ja kogu lugu. Koma peab ise panema. On ehk keegi säärast koodijuppi kohanud (soovitavalt asmis) ?
    - 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!

    #2
    Vs: Microchipi ujupunkti teisendamine

    Ee...tarkade inimeste nõu oleks ikka veel vaja. Et kui mahti on, jagage oma lahendusi.
    Tähh!
    - 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
      Vs: Microchipi ujupunkti teisendamine

      kas Microchipi kodukal mõnd Application Note selle kohta pole ? igatahes üsna sageli võib leida IEEE754 ujukoma tehete lähtekoodi just ASMis, ka C kompilaatori libis peaks leiduma. mis arvutamist puudutab siis ega vist teisiti saagi kui enne sooritada ujukomas skaleeriv arvutus ja siis teisendada fikseeritud täisarvuks. C keeles on ftoi ja ftol: float to integer( 16 bitti) ja float to long ( 32 bitti) funktsioonid.
      sellest 10ga jagamisest ei saanud eriti aru - ieee754 ujukoma on igati binaararv, nii astendaja kui mantiss.

      Comment


        #4
        Vs: Microchipi ujupunkti teisendamine

        Ma ei ole suutnud leida sobivat näidet. Ilmselt ei oska otsida.
        Ise kasutasin seni koodi: http://parsek.yf.ttu.ee/~felc/FLOASC.INC (pärit siit)
        Arv teisendatakse INTiks ja jagatakse 10-ga muutes iga kord jäägi ASCIIks. Paraku ei pane algoritm koma ja üldse ... veidi lihtsustatud. Bitikaupa teisendamine pole vist ka eriti lihtne sest bittide kaalud on murdarvulised:
        - 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: Microchipi ujupunkti teisendamine

          Kas ujupunktist ei saa lahti ? Mis rakendus seda eritab ?
          Äkki kannatab seda kraami alguses skaleerida nt. 65535ga ?

          Ujukoma on suhteliselt mahukat koodi nõudev tegelane.

          Comment


            #6
            Vs: Microchipi ujupunkti teisendamine

            Esmalt postitatud felch poolt
            Paraku ei pane algoritm koma ja üldse ... veidi lihtsustatud.
            Bitikaupa teisendamine pole vist ka eriti lihtne sest bittide kaalud on murdarvulised:
            Maadlesin sellega aegajalt kuskil 1968-78.
            1980. ehitasime lõpuks "aparatuurse koma".

            Kas see koma õige koht ei käi nii et
            Algul on arv 1,xxxxxxxxxx kui nüüd lükata vasakule (paremale) mantissi jagu bitte,
            siis on seal vasakul täisosa ja paremale jääb murdosa.
            Neid saab edaspidi eraldi teisendada.

            Oli ajakiri "Programme kõigile". Seal oli selliseid algoritme toodud.
            Aga on vist suvilasse rännanud

            Kui ei ole saladus, siis mis arvutile see minema peab?

            Kui PC, siis võiks proovida teha C moodul ja teha disasm.
            Või transleerimisel lasta teha ka asm.
            Või, laadida PC liikuva koma protsessorisse. Teha käsk ja võtta jupid välja.
            Kuskil 14 aastat tagasi ma proovisin viimati midagi sellist teha.
            Kõike ei mäleta ka enam täpselt. Hakkad vanaks jääma

            Kui oli mingi sobilik mõte, siis anna teada.

            Comment


              #7
              Vs: Microchipi ujupunkti teisendamine

              täisarvul pole koma, seega ei saa seda ka kuidagi panna. sinu viidatud koodis on näha et kutsutakse välja ujukomaarvutus kus algväärtust korrutatakse 1000-ga ja siis võetakse täisosa ( ftoi analoog), kõik mis koma taha jääb visatakse minema. sama hästi saad selle ka ise kirjutada kui ujukoma formaadi ehitust uurid.
              kordan et ma ei saa eriti aru mida saada tahad.
              kui tahad ujukoma arvu saada stringiks ( tekstiks) siis C-s saab seda ntx läbi sprintf-i teha. aga seda on lihtsam internetist vaadata, kasvõi :
              http://www.cplusplus.com/doc/tutorial/
              asmis teha on võimalik aga ... = jalgratta leiutamisega. õpi need paar rida C-s selgeks, elu on puhtam ja muretum selleks kulub ju üks õhtu kõigest.
              ujukomateisendused nõuavad "full " lib'i C-s.

              PS see millest A.R. räägib nimetatakse CSD (canonical signed digit ) ja oli 1980-90-tel digitaalses signaalitöötluses kõva sõna aga tänaseks peaaegu loobutud sest kõrgkeeled ( C ) ei toeta.
              viimati muutis kasutaja raivo; 26 m 2009, 11:45.

              Comment


                #8
                Vs: Microchipi ujupunkti teisendamine

                Jah, see algo töötas nii et konvertis kõigepealt numbri täisarvuks. Sealt need hädad algasidki.
                Float on mul askutusel mitmes koodis (PIC-prosel jooksvad). Viimane asi on ühe vetikate kasvatamise "reaktori" kontroller. Sama, mille RS485 siini andurite muresid kurtsin. Loetakse anduritelt mitmeid parameetrid ja skaleeritakse. Tambovid, millega korrutada, on murdarvulised. Seepärast pidin kogu daata float kujule viima.
                Lõpuks tahaks juuser numbreid ekraanil näha. Üle neti näed seda tavaline PC brauseris jooksev kood ja tema ilmselt teebki sprintf (vms). Aga teine juuser reaktori juures tahab lugeda arvu kontrolleri ekraanilt. ASCIIs. Seda juhib toosama PIC.
                Ilmselt olen sunnitud paar C rida selgeks õppima ja siis disasmi tegema. Kuidagi ju on võimalik floati ASCIIks teisendada.
                - 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: Microchipi ujupunkti teisendamine

                  Esmalt postitatud felch poolt
                  mul askutusel
                  Tavaliselt vahetab inimene ära kaks tähte.
                  Sina oled proff, kirjutad vabalt kahe käega?
                  On nii???

                  Vabandust,
                  Mu toimetajaaegne hobbby.

                  sprintf on USER32 kõhus
                  viimati muutis kasutaja A.R.; 25 m 2009, 22:33.

                  Comment


                    #10
                    Vs: Microchipi ujupunkti teisendamine

                    Kirjutan tõesti aga..vist peaks minema 1 näpuga tippimisele üle. Vigu oleks vähem. Vabandan. Õhtuti tekib neid näpukaid miskipärast eriti palju, klahvid tunduvad kole pisikestena ja teineteisele liiga lähedal ja ... jne.
                    - 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


                      #11
                      Vs: Microchipi ujupunkti teisendamine

                      Esmalt postitatud felch poolt
                      Kirjutan tõesti aga..vist peaks minema 1 näpuga tippimisele üle. Vigu oleks vähem. Vabandan. Õhtuti tekib neid näpukaid miskipärast eriti palju, klahvid tunduvad kole pisikestena ja teineteisele liiga lähedal ja ... jne.
                      Normaalne.
                      Rääksin siin et üritasin indentifitseerida artikli autorit tema kirjavigade alusel.
                      300 inimesest oli, umbes, 50 olid kindlalt määratavad.

                      Ja nüüd nad tahavad siin keelata vigadega kirjutamise!
                      Õudne.

                      Comment


                        #12
                        Vs: Microchipi ujupunkti teisendamine

                        Esmalt postitatud felch poolt
                        Tambovid, millega korrutada, on murdarvulised. Seepärast pidin kogu daata float kujule viima.
                        lahjat proset kasutades püüan Tambovi teisendada kujule T=X/(2^N). X on arv millega tuleb lähtearvu korrutada, N aga arv mitu bitti tuleb tulemust paremale nihutada. kuna korrutamine on palju kiirem kui jagamine, asendame jagamise nihutamisega. Kui ühe arvutusega välja ei mängi, tuleb kasutada T = X/(2^N) +(-) Y/(2^M).
                        NB kui arv on märgiga siis peab kasutama aritmeetilist nihutamist, see säilitab märgi, positiivsete arvude puhul pole vahet kas loogiline või aritmeetiline nihe.

                        Comment


                          #13
                          Vs: Microchipi ujupunkti teisendamine

                          See on muidugi mõte aga ... proovin ja uurin. Samas kuidas paganas see fprint algo siis töötab? Netist otsides jäi ka mulje et universaalset float_to_ascii algoritmi ei olegi. No ei saa olla ! Mida need kompilaatorid siis kasutavad?
                          Kuskil kohtasin märget et M-chipi lib'ist olla vastav algo välja visatud kuna oli maru pikk ja kohmakas. Leiaks selle nudimata versiooni, mul aega on. 40 MHz taktiga pole prose niiväga uimane ka. Perfieeria on kordades aeglasem.

                          PS. Minu seni kasutatav tamboviseerimise valem on tulemus=TambovA*lugem+TambovB
                          - 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: Microchipi ujupunkti teisendamine

                            jah, full stdio.lib kipub sõltuvalt prosest üsna mahukas olema, peale kompileerimist 8+ kB keskmiselt. kasutamiseks pead selgeks tegema mis registrite kaudu andmed edastatakse (s)printf funktsioonile. on veel üks aga, stdio kasutab heap mälu ja kuidas seda asmis selgeks teha, ei kujuta ette. kuigi krt seda teab, võibolla mõni kompilaator ei kasutagi.

                            Comment


                              #15
                              Vs: Microchipi ujupunkti teisendamine

                              Asmi fännina olen alati teiste tehtud lib'e "optimeerinud" visates üle parda kõik, mida ei kasuta. Oleks vaid lähtekood.
                              - 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

                              Working...
                              X