ASSEMBLERILLA delay?

Onko hyviä vinkkejä kuinka tehdä delay silmukka assemblerillä? Esim jos haluaa 1 sek viive. ja piiri on 4Mhz
71491
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Väärä palsta.

Joku vois kuitenkin alkaa siitä mitä assembler komentoja kyseiseen looppiin tarvitaan ja laskea niiden viemät kellojaksot..

Äänestä
  • fiksu käyttää timereita

    Äänestä

  • Minnekköhän tämän olisi muualle voinut laittaa? ajattelin, että kun jos joku osaa c-ohjelmointia, niin kyllä hän osaa myös assembleria, mutta taisin olla väärässä. Anteeksi kauheasti jos vaivasin :-(

    Äänestä

  • Kyllä c-palsta on lähinnä asm koodia tarjolla olevista vaihtoehdoista.

    Jos haluut koodata timerin ja käytössä on ohjelmoitavat interruptit niin tee niiden avulla ihmeessä. Ellei ole niin aja vaikka jotain käskyä sopivan kauan luupissa (luuppien määrä: niin monta kertaa kuin haluat kuluttaa ajattuna jattuna sillä ajalla jonka yksi luuppi vie aikaa)

    Äänestä

  • h0xee kirjoitti:

    Kyllä c-palsta on lähinnä asm koodia tarjolla olevista vaihtoehdoista.

    Jos haluut koodata timerin ja käytössä on ohjelmoitavat interruptit niin tee niiden avulla ihmeessä. Ellei ole niin aja vaikka jotain käskyä sopivan kauan luupissa (luuppien määrä: niin monta kertaa kuin haluat kuluttaa ajattuna jattuna sillä ajalla jonka yksi luuppi vie aikaa)

    Jep, se looppi on mielessä, mut yksi käsky kestää 1 mikro sek, niin jos haluaa sekunnin viiveen, niin 1000 000 riviö nop-käskyä :-)

    Koitan jotain kikkailla, kiitos, kiitos.

    Äänestä

  • Kelloseppä kirjoitti:

    Jep, se looppi on mielessä, mut yksi käsky kestää 1 mikro sek, niin jos haluaa sekunnin viiveen, niin 1000 000 riviö nop-käskyä :-)

    Koitan jotain kikkailla, kiitos, kiitos.

    no niin 1000 000 riviö nop-käskyä ei ole looppi, vaan tee oikea looppi, eli annat rekisteriin lasketun arvon mitä se sekunnin viive vaatii, ja ajat sen. Mutta tämähän ei ole oikea tapa tehdä viive, koska haukkaa prossutehoa, oikea on ohjelmoida keskeytys (oletan että teet PC:n tätä), tämän voi varmaan tehdä C kielellä... jota minä ymmärrän tasan yhtä paljon kun Bushmanni naisten vapautusliikkeestä.

    Äänestä

  • Mad_max kirjoitti:

    no niin 1000 000 riviö nop-käskyä ei ole looppi, vaan tee oikea looppi, eli annat rekisteriin lasketun arvon mitä se sekunnin viive vaatii, ja ajat sen. Mutta tämähän ei ole oikea tapa tehdä viive, koska haukkaa prossutehoa, oikea on ohjelmoida keskeytys (oletan että teet PC:n tätä), tämän voi varmaan tehdä C kielellä... jota minä ymmärrän tasan yhtä paljon kun Bushmanni naisten vapautusliikkeestä.

    ... Niin tällanen timer-juttu muistaakseni toimi:

    void foursec_delay(void)
    {
    unsigned long preTime;
    preTime = *systemTimer;

    while((preTime 73) > *systemTimer) //odotetaan 73/18.2= 4 sekuntia
    {
    }

    }

    Äänestä

Kommentoi aloitusta


Kelloseppä kirjoitti:

Onko hyviä vinkkejä kuinka tehdä delay silmukka assemblerillä? Esim jos haluaa 1 sek viive. ja piiri on 4Mhz

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu