Suomi24 Keskustelussa on viikonlopun aikana ollut poikkeuksellisen paljon bottien automaattiseti luomia kommentteja. Pahoittelemme tästä aiheutunutta harmia. Olemme kiristäneet Keskustelujen suojausasetuksia ja kommentointi on toistaiseksi estetty ulkomailta.

Portin lukeminen lazaruksella

aikaa_vierinyt

Tuli mieleeni kysyä, että onko Lazaruksessa tukea io-portin luennalle muuta
kuin 8-bittisenä? Tiedän kyllä tämän x := port[0x378]; tavan hoitaa portista luku,
mutta nyt pitäisi lukea 32-bittisiä lukuja portista. Kyllähän tämä tuolla 8-bit tavallakin hoituu, mutta olisi tehokkaampaa saada luetuksi vähän isommissa paloissa. Mitenkä asm-upotus menee?

16

<50

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Lukemalla 4 tavua kerrallaan ja pyörittelemällä bittejä...?

      • L_a_z_z_o

      • L_a_z_z_o kirjoitti:

        Pascal tarjoaa monia mahdollisuuksia pyöritellä bittejä.
        Joitakin esimerkkejä löydät:
        http://wiki.freepascal.org/Bit_manipulation

        Tuo on kömpelöä. Normaalisti on operaattorit >> ja <<

        Ehkä kannattaa valita käyttötarkoituksiin sopivampi työkalu.


      • Turbo_P
        M-Kar kirjoitti:

        Tuo on kömpelöä. Normaalisti on operaattorit >> ja <<

        Ehkä kannattaa valita käyttötarkoituksiin sopivampi työkalu.

        Noita vastaavia käskyjä on Pascal:ssa SHR ja shl.


      • M_Kar
        Turbo_P kirjoitti:

        Noita vastaavia käskyjä on Pascal:ssa SHR ja shl.

        >> on nopeempi kirjottaa kuin shr


      • D-Mar

        Mutta jos on mekaaninen kytkin mustilla kytkimillä, shr on nopeampi, lisäksi jos vielä aurinko on hitusen vielä päivän puoella shr on vielä nopeampi, paitsi jos sataa vettä.


    • Lue_se_manuaali

      Mahtaako lazarukseen mitään asm-koodia saada upoteltua...

      • L_a_z_z_o

    • L_a_z_z_o

      Se miten luetaan riippuu prosessorista. Esim. Free Pascal:ssa on tuettuna noin 200 eri ARM prossua. Lisäksi on esim. Intel 86 johdannaiset ymv. Eri prossuilla voi olla erilainen i/o. Ehkäpä tässä tapauksessa prossu kohtaisen assy koodin upottaminen olisi jokin ratkaisu

      • 7or7

        Juuri tätä itse asiassa hain. Kun vertaa tuota esimerkin assemblerin tasoa siihen, mitä löytyy esim. linuxin io.h:sta c:ssä, on ero melko järkyttävä. Tästä syystä mm. olen siirtymässä kokonaan pois c:n käytöstä ja kohti Lazarusta. Se nyt vaan sattuu toimimaan useammalla tasolla selkeämmin kuin c. Nytpä saan sen hw-tuen täydennettyä! Ei asm koskaan taida portattavaa ollut - ainakaan luettavana. Helpompi kuitenkin lukea _selkeää_ assembleria sen porttauksen toteuttamiseksi, varsinkin kun toteutettava toiminnallisuus on kuvatta kommenteissa Pascal:lla.


      • 7or7 kirjoitti:

        Juuri tätä itse asiassa hain. Kun vertaa tuota esimerkin assemblerin tasoa siihen, mitä löytyy esim. linuxin io.h:sta c:ssä, on ero melko järkyttävä. Tästä syystä mm. olen siirtymässä kokonaan pois c:n käytöstä ja kohti Lazarusta. Se nyt vaan sattuu toimimaan useammalla tasolla selkeämmin kuin c. Nytpä saan sen hw-tuen täydennettyä! Ei asm koskaan taida portattavaa ollut - ainakaan luettavana. Helpompi kuitenkin lukea _selkeää_ assembleria sen porttauksen toteuttamiseksi, varsinkin kun toteutettava toiminnallisuus on kuvatta kommenteissa Pascal:lla.

        Kuullostaa kyllä silti siltä, että teet jotain väärin. Mikähän laite siellä portissa mahtaa olla? Normaalisti kun tehdään pipe eikä hinkata mitään matalantason juttuja.


      • kaikki_oikein_tehtynä

        Itse rakentamani AVR-kontrolleri, joka ottaa vastaan 32-bittistä dataa siirtorekisterin kautta. Tällä tavalla saan optimoitua tiedonsiirron laitteiden välillä 1 asm-käsky/32bittiä dataa. Lisäksi kun tuohon ottaa DMA:n mukaan, on prosessorikuorma melko vähäinen. Tällä hetkellä se kerää mittausdataa nopeudella 1mbit/s prossukuorman ollessa vanhalla 120MHz penalla n. 35%.


      • kaikki_oikein_tehtynä kirjoitti:

        Itse rakentamani AVR-kontrolleri, joka ottaa vastaan 32-bittistä dataa siirtorekisterin kautta. Tällä tavalla saan optimoitua tiedonsiirron laitteiden välillä 1 asm-käsky/32bittiä dataa. Lisäksi kun tuohon ottaa DMA:n mukaan, on prosessorikuorma melko vähäinen. Tällä hetkellä se kerää mittausdataa nopeudella 1mbit/s prossukuorman ollessa vanhalla 120MHz penalla n. 35%.

        Suorituskyky ei ole yleensä ikinä minkäänlainen ongelma.


      • 21or21

        Kyllä se silloin on, kun rakennetaan sen varaan, mitä on saatavilla ilman lupaa ostaa mitään uutta. Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa. Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista. Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla. Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi ja tilalle on astunut tekniikan korvaaminen vähän avoimemmalla tekniikalla - ilman turhia välistä vetäjiä. Miksi käyttää tekniikkaa, joka pystyy n. 10ns tarkkuuteen, kun vaadittu tarkkuus on luokkaa 0,1s.


      • 21or21 kirjoitti:

        Kyllä se silloin on, kun rakennetaan sen varaan, mitä on saatavilla ilman lupaa ostaa mitään uutta. Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa. Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista. Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla. Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi ja tilalle on astunut tekniikan korvaaminen vähän avoimemmalla tekniikalla - ilman turhia välistä vetäjiä. Miksi käyttää tekniikkaa, joka pystyy n. 10ns tarkkuuteen, kun vaadittu tarkkuus on luokkaa 0,1s.

        "Kontrolleri kustansi 2,40e ja logiikkapiirit siihen päälle kokonaisuudessaan jäi hyvinkin alle kympin. Ajaa asiansa."

        Kerrotko mistä ostit ja mitä? Kiinnostaa.

        "Korvaa laitteiston, jonka hintalapussa on liian iso luku johtuen nykyisestä hurjasta kehityksen tahdista."

        Ei nyt kuullosta miltään hurjalta kehityksen tahdilta kun on joku vanha Pentium siinä käytössä.

        "Lopputuloksena on onnistuttu rakentamaan lukitusmekanismi hinnoille, jolla pienempiä ongelmia ei enää pystytä ratkaisemaan halvalla."

        Nykypäivänä tietoteknisten ongelmien ratkaisu on hyvin halpaa kun uuden tietokoneenkin saa muutamalla kympillä ja ohjelmat maksutta.

        "Siispä päivitysrumbasta on luovuttu ainakin vuosikymmeneksi"

        Miksi niitä pitäisi päivittää?


    • maailman_menot

      No näitä tuli käytettyä:
      http://www.futurlec.com/ICAtmel.shtml
      -tarkemmin sanoen se oli tuo mega 168, eli arduinon serkku
      -noissa tinyissä olen myös 2313:sta käyttänyt, se on 0,95 dollarin hinnalla
      sopivan halpa - jos ei tarvita AD-muunninta siis. Silti siinä on rs232/spi/i2c, millä pärjää jo pitkälle. Ja jos loppuu nastat, niin näitähän saa laitettua levyllä vaikka kaksi!
      Laitemyyjät haluavat myydä tuon penan tilalle jo jotain uudempaa - ei siis onnistu enää ostaa "vanhaan" uutta korttia vaan pitäisi päivittää koko järjestelmä. Ja edelleenkin se 0.1s reagointitaso riittää, eikä uudelle luvattu 10ns tulisi edes käyttöön. Ohjaussofta on tehty aikanaan Delphillä.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      91
      2354
    2. Millä voin

      Hyvittää kaiken?
      Ikävä
      53
      2054
    3. Jotain puuttuu

      Kun en sinua näe. Et ehkä arvaisi, mutta olen arka kuin alaston koivu lehtiä vailla, talven jäljiltä, kun ajattelen sinu
      Ikävä
      88
      1873
    4. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      23
      1858
    5. 50+ naiset kyl

      Lemottaa sillille mut myös niitte kaka lemottaa pahlle ku kävin naiste veskis nuuhiin
      Ikävä
      10
      1648
    6. Haluan sut

      Haluatko sinä vielä mut?
      Ikävä
      77
      1572
    7. hieman diabetes...

      Kävin eilen kaverin kanssa keskusapteekissa kun on muutama kuukausi sitten tullut suomesta ja oli diabetes insuliinit lo
      Pattaya
      27
      1446
    8. Hei A, osaatko

      sanoa, miksi olet ihan yhtäkkiä ilmestynyt kaveriehdotuksiini Facebookissa? Mitähän kaikkea Facebook tietää mitä minä en
      Ikävä
      41
      1410
    9. Välitän sinusta mies

      Kaikki mitä yritin kertoa tänään ei mennyt ihan putkeen..Joka jäi jälkeenpäin ajateltuna suoraan sanottuna harmittaa aiv
      Työpaikkaromanssit
      6
      1402
    10. Haluaisin aidosti jo luovuttaa ja unohtaa

      Ei tästä mitään tule koskaan.
      Ikävä
      73
      1380
    Aihe