Teade

Collapse

Foorumi reeglid.

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

Tahhomeeter

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

    Tahhomeeter

    Tundub, et see alajaotus sobib paremini sellise küsimuse jaoks
    Tekkis selline kole idee ehitada (vastvate seadmete hinnad poes võtsid jalad nõrgaks ) autole tahhomeeter. Tahaks selle saada numbrilise ja nii täpse kui vähegi võimalik. Idee tundus väga lihtne:
    Mikrokontroller, mille järgi läheb neli 7-segment indikaatorit ja kaks LED-i (üks annaks märku, millal on tagumine aeg käiku vahetada ja teine kukuks vilkuma, kui pöörded punasesse jõuavad). Riistvara on imelihtne ja tänaseks päevaks valmis, kuid softiga on lugu problemaatililine. Väga täpse pöörete arvu saamiseks oleks vaja omavahel jagada 32 bitine (tegelikkuses 22bitine
    konstant) ja 16 bitine arv. Aga kontroller (AVR) kurivaim on 8bitine. Uurisin Atmeli kodulehte ja leidsin sealt mõned jagamisalgoritmid, kuid nende ümberkirjutamine käib üle jõu, kuna ei suuda tabada loogikat, mis selle taga peitub.
    Samuti oleks natukene abi vaja saadud arvu "väljaprintimise" kohalt. Nimelt on ju väga tore, kui kontrolleri kõhus kusagil on see arv olemas, kuid kuidas kiiresti kätte saada erinevaid arve, mida ekraanile tuua. Näiteks arvu 4875 lammutamine neljaks erinevaks numbriks (4,8,7 ja 5), mis siis erinevatele indikaatoritele ette söödetakse.
    Nagu vahelduvvool - on ja ei ole

    #2
    22 bitti konstant jagad 16 bitise arvuga ?
    tundub et formaadiga midagi viltu, sest sel juhul jääb arvust halvemal juhul alles vaid 6 bitti ehk number 0..63.
    Kui see 32 bitine on konstant, siis võid ka korrutada 1/konstant, ehk jäävad arvutused siis 16 biti sisse ,mis lihtsam ning kiirem. kui aga 1/K tuleb lühike ja ebatäpne number,siis võid seda alati korrutada arvu 2 mingi astmega. ning hiljem sama arvuga jagada. 2 astmeid on mugav kasutada,sest korrutamine on tegelikult nihe vasakule ja jagamine nihe paremale. st pääsed arvutustest.
    led-le numbri viimine on kahendkoodi teisendamine kahend-kümnendkoodiks. näiteid peaksid leidma ,otsi "binary to bcd converter".
    jäi mulje et mässad asm-s , õppe-eesmärgil õige ,aga muidu kirjuta C-s või basicus.



    Comment


      #3
      http://www.hot.ee/felch/FP52.ASM
      ...on 51 kontrollerile aga ehk saad sealt idee üle võtta!
      7-segmendi numbriks konverditakse tabeliga.
      - 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


        #4
        Kui jagada 22bitine arv 16bitisega, siis on täpsus ikka ~16 bitine. Komakohti sa näidata ei taha.
        Niisiis:
        22bitine konstant olgu 'karu'
        16bitine sisend olgu 'toru'

        rpm = karu/toru
        rpm = 1/karu * toru
        rpm = 2^24 / karu * toru / 2^24
        rpm = (2^24 / karu) * toru SHR 24
        konstandi (2^24/karu) saad enne valmis arvutada

        Ekraanile näitamine käib lihtsa tsükliga:

        algus
        arv = arv div 10
        esimene number (ühelised) = jääk
        korda uuesti (nüüd tuleb teine, kolmas jne number)

        Comment


          #5
          Wohaa. Mul on nüüd infot, nii et annab
          Vaja ainult see õige välja selekteerida ja valmis kribada. Eks hakkan täpsemalt uurima, milline mulle paremini sobib. Esmatähtsaks saab siiski kiirus, mistõttu ilmselt on vaja mingi kombineeritud lahendus leida, sest KaruTECi poolt välja pakutud bin2BSD on kardetavasti liiga aeglane, kuid ega ei saa enne pead anda, kui pole täpselt üle arvutanud
          Nagu vahelduvvool - on ja ei ole

          Comment


            #6
            Veel mõned nopped, ehk on abix.
            http://www.hot.ee/felch/7segm.txt
            http://www.hot.ee/felch/div24bitti.txt
            Prose: 8051
            - 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
              köige lihtsam,laadi siit http://www.mcselec.com/
              avr basicu demo variant, see on 2 kb mahupiiranguga,aga tahhomeeter mahub raudselt sinna sisse. kiiruse pärast ei tasu muretseda,avr on ikka väga kiire, ning led-le numbrite toomise sagedust ei tohigi kiireks ajada,muidu kaks nooremat numbrikohta vaid virvendavad.

              Comment


                #8
                Nüüd piiname majja tulevat traati. 2KB ei häiri, sest kasutatav AVR omab kõigest 1K ROMi ;D
                Tahhokas mahub sinna raudselt ära. Oleks tegelikult imelik, kui ei mahuks ;D

                Andy@back.to.the.drawing.board.ee
                Nagu vahelduvvool - on ja ei ole

                Comment

                Working...
                X